为什么会发生以下情况?
执行时
db.ref('einstellungen').update({[set + "_blue"]:true}).then(firebase.database().goOffline());
什么都没发生-没有错误,没有上传。
但是,
db.ref('einstellungen').update({[set + "_blue"]: true}).then().then(function(){
firebase.database().goOffline();
});
可以正常工作...
答案 0 :(得分:4)
第一行实际上立即离线:
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()
位于回调函数的 body 中,因此只有在实际调用then()
回调之后(即在更新完成。