收藏
回答

为什么使用了then,但是程序运行的顺序还不是顺序执行的?

按理说不应该是87行的代码应该在80行代码之后运行吗?

为什么实际运行中正好反过来了?不应该是先执行第一个then,再执行第二个then吗?

下图为输出截图

这个图是图一里面getlistindex的函数详情

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

1 个回答

  • 金煜峰
    金煜峰
    2021-04-23

    你的 .then 里又执行了异步方法 getListIndexSkip,自然是下面的先执行了,想要按顺序还是 await 比较方便吧

    // 开启增强编译
    async function () {
      const res = await db.collection('xxx').where({
      
      }).count()
      this.setData({
        goodsNum: res.total
      })
      let list = []
      for (let i = 0; i < res.total; i += 20) {
        const li = await this.getListIndexSkip()
        list = list.concat(li)
      }
      ...
    }
    
    2021-04-23
    有用 1
    回复 2
    • Fu
      Fu
      2021-04-23
      谢谢!!!
      请问要是想要补一下这方面的知识,应该去学什么呀?
      2021-04-23
      回复
    • 金煜峰
      金煜峰
      2021-04-23回复Fu
      可以看看 async 和 await 的资料,使用很简单的,在异步函数前加个 await 就可以像同步函数一样直接得到结果了,不过 await 只能用在 async 函数里
      2021-04-23
      1
      回复
登录 后发表内容