promise.all执行多个异步方法时如何传参?

var p = Promise.all([p1, p2, p3]);
  • 如同ES6的语法所示,语法只定义了要执行的p1p2p3三个异步方法的变量
  • 但如果执行p2方法时需要传ab两个参数,并且都是由p1执行后才返回的,该如何传参
  • 比如执行时应该是p2(a,b)传参
阅读 8.3k
3 个回答

promise不是嵌套写法,读起来也很顺畅啊。有顺序依赖关系可以考虑async写法,没有可以考虑用all或者race方法,不过这两个方法针对的应用场景也不同。
比如all方法,你想渲染一个列表,列表字段牵涉到很多表,但是后端同学针对不同表中字段,懒得做封装,让你使用已有的针对单表操作的几个接口,此时用all才适合。你题目中的场景不适合用all,因为异步操作间有依赖关系。
http://es6.ruanyifeng.com/#do...

你的需求就用不了promise.all,因为其实并行执行,而你的需求其实是顺序执行。

all 是全部一起执行的 你要等p1返会结果后再去执行 那就老实的写到 then 里面好了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题