为什么会发生以下情况?

执行时

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()回调后(即更新完成后),它才会被求值。

09-18 12:43