为什么使用了then,但是程序运行的顺序还不是顺序执行的?
发布于 6 年前 作者 lxue 8112 次浏览 来自 问答

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

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

下图为输出截图

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

1 回复

你的 .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)
  }
  ...
}
回到顶部