收藏
回答

云开发数据库调用时代码的先后运行顺序问题?

上面的代码 console.log(a)得到的a的值是空,我怀疑console.log(a)在for循环之前运行了 ,如果是这样,怎么才能让console.log(a)在for循环之后运行呢。小白求教 谢谢大家

回答关注问题邀请回答
收藏

3 个回答

  • Stephen
    Stephen
    2020-03-26

    谢邀。首先,需要弄清楚你最终目的是做什么(是要取前120个中 comments 为空的数据?)。

    开发时应该避免使用 for 循环去操作数据库,看你贴出来的逻辑,是可以融合成一个请求来达想要的目的的。

    如果非要按原有逻辑来也是可以改造的。使用 async / await 将循环内的 get() 赋值给数组 a,然后 join 得到结果后 console.log(a)。或者使用 Promise.all 将循环内全部查询合起来 走 .then() 输出

    2020-03-26
    有用 2
    回复
  • brave
    brave
    2020-03-26

    then后面再加then

    2020-03-26
    有用 1
    回复 1
    • Atlantis
      Atlantis
      2020-03-26
      我想得到for循环之后的值 这样做貌似不可以
      2020-03-26
      回复
  • 郑旭东
    郑旭东
    2020-03-26

    数据库是异步的,concat这个动作有滞后

    2020-03-26
    有用
    回复 4
    • Atlantis
      Atlantis
      2020-03-26
      谢谢回答 那该怎么改呢
      2020-03-26
      回复
    • 郑旭东
      郑旭东
      2020-03-26回复Atlantis
      可以用递归函数,最有一次递归执行完毕的then里面执行 console.log
      2020-03-26
      回复
    • Atlantis
      Atlantis
      2020-03-26回复郑旭东
      你好,这样得到的还是空
      2020-03-26
      回复
    • 郑旭东
      郑旭东
      2020-03-26回复Atlantis
      你这么一个图一个图的,我怎么帮你改,不能直接贴代码吗
      2020-03-26
      回复
登录 后发表内容
问题标签