2个promise怎么串行执行?
发布于 2 个月前 作者 muzi-xiangxiang 672 次浏览 来自 问答

有getA(),getB()两个promise,当A执行完成执行B,并获得B的执行结果进行提示, image.png

9 回复
getA().then(result=>getB(result)).then(result =>{
  // some tips
  })

@Sunshine168 预期的输出是这样的 新增列表:462//异步操作完成输出>新增状态 更新列表:0 删除列表:0 新增状态:true 123 image.png 实际输出: 新增列表:462//异步操作完成输出>新增状态 更新列表:0 删除列表:0 123 新增状态:true 先打印了123,而没有等待第一个方法的异步执行完成

建议 async/await

async/await,否则

a()
  .then(data => {
    return b(data)
  })
  .then(res => {
    //todo blabla...
  })

楼上说的对, 结果传递的确是Promise的一个痛点, async/await可以让代码好看些。

@muzi-xiangxiang 这样的话应该就是你第一个promise里面有问题了 你试试 async/await写法验证看看

回到顶部