我正在使用Firebase,并且编写了如下代码:
firebase.database().ref().child('someChild').set({
someKey: 'someValue'
}).then(() => {
return firebase.database().ref().child('someChild').once('value')
.then(snapshot => snapshot.val().someKey);
}).then(insertedData => {
console.log('Your inserted data:' + insertedData);
});
如您所见,我的外部Promise(嵌套)中还有另一个Promise。这是反模式吗?应该避免吗?
答案 0 :(得分:1)
嵌套诺言不是这里的反模式,实际上建议这样做。反模式部分将设置异步等待执行块。由于await等待调用结束,因此将阻塞线程,但会执行其他子线程。仅凭代码还不足以确定它是否是反模式,而是通常使用链嵌套,因为在执行其他“ then” -s之前需要完成一些过程。