为什么会发生以下情况?
执行时
db.ref('einstellungen').update({[set + "_blue"]:true}).then(firebase.database().goOffline());
没有任何反应-没有错误,没有上传。
但是,这
db.ref('einstellungen').update({[set + "_blue"]: true}).then().then(function(){
firebase.database().goOffline();
});
可以正常工作...
最佳答案
第一行实际上立即离线:
db.ref('einstellungen').update({[set + "_blue"]:true})
.then(firebase.database().goOffline());
如果仔细观察,您会将调用
goOffline()
的结果传递给then()
调用,因此它必须立即评估goOffline()
。相反,您需要声明一个回调:
db.ref('einstellungen').update({[set + "_blue"]:true})
.then(() => firebase.database().goOffline());
在第二个代码段中,
goOffline()
位于回调函数的主体中,因此只有在实际完成then()
回调后(即更新完成后),它才会被求值。