在测试我的代码时,控制台日志将是2: 0
(多次)、3: 0
(一次)、1: _
(多次,其中_
每次都会增加)。
我不确定如何让1
发生在2
和3
之前,这样当我写入数据库时(在log3之后),这个值就不是0
。
我不确定如何处理这个问题,因为我没有使用firebase的经验。
var count=0;
var total=0;
var ass_ref = admin.database().ref("modules/"+mod+"/Assignments");
return ass_ref.once("value", function(snapshot) {
snapshot.forEach(function(child) {
var name = child.key;
var ref = admin.database().ref("modules/"+mod+"/Assignments/"+name+"/"+uid);
ref.once("value", function(mark) {
count++;
total=total+ parseInt(mark.val(),10);
console.log("1:"+total); //Value increases each time but occurs after 3
});
console.log("2:"+total); //Value = 0 (occurs multiple times, in foreach)
});
console.log("3:"+total); //Value = 0, logs once, after "2"
我希望1
发生在2
之前(我相信它会记录为1,2,1,2...)以便记录在3
的最终值与记录在1
的最后一个值相匹配。
https://stackoverflow.com/questions/56240365
复制相似问题