首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使读取数据库后的代码在读取发生后发生

如何使读取数据库后的代码在读取发生后发生
EN

Stack Overflow用户
提问于 2019-05-21 22:20:49
回答 1查看 32关注 0票数 0

在测试我的代码时,控制台日志将是2: 0 (多次)、3: 0 (一次)、1: _ (多次,其中_每次都会增加)。

我不确定如何让1发生在23之前,这样当我写入数据库时(在log3之后),这个值就不是0

我不确定如何处理这个问题,因为我没有使用firebase的经验。

代码语言:javascript
运行
复制
  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的最后一个值相匹配。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56240365

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档