Node.js Firebase在promise激发之前等待加载数据库数据
有人能解释一下如何在Firebase中使用我的代码吗Node.js Firebase在promise激发之前等待加载数据库数据,node.js,firebase,firebase-realtime-database,promise,onload,Node.js,Firebase,Firebase Realtime Database,Promise,Onload,有人能解释一下如何在Firebase中使用我的代码吗 var p = new Promise(function(resolve, reject) { var data=null; var ref = db.ref("/"); ref.once("value", function(snapshot) { data = snapshot.val(); }
var p = new Promise(function(resolve, reject) {
var data=null;
var ref = db.ref("/");
ref.once("value", function(snapshot) {
data = snapshot.val();
});
data.onload = function() {
console.log(data+" onload");
if (data!=null) {
resolve('Success!');
}
else {
reject('Failure!');
console.log('failed');
}
}
});
p.then(function() {
/* do something with the result */
console.log(data+" done");
}).catch(function() {
/* error :( */
console.log("error");
});
我想等到我从
data=snapshot.val()得到“回音”代码>在调用下一个函数之前。正确的方法是什么?我显然不理解承诺。我正在努力学习教程 承诺直接内置到firebase中
var ref = firebase.database().ref();
ref.once('value')
.then(function (result) {
// This only happens after the data has been returned
console.log(result.val());
})
.catch(function (err) {
// This is where errors land
console.log('Error', err.code);
});
firebase的第3版已经涵盖了您,因此您不需要创建容器承诺。:) 看看你的代码,你需要复习一下firebase!忽略承诺代码,其余代码看起来完全错误我的意思是,您的var p
可以是var p=db.ref(“/”).once(“值”)代码>-因为一次
返回一个承诺。。。然后是p.then(函数(结果){…对结果做点什么…})