首页  >  文章  >  web前端  >  ## Promise.all() 是顺序执行还是并行执行 Promise?

## Promise.all() 是顺序执行还是并行执行 Promise?

Patricia Arquette
Patricia Arquette原创
2024-10-26 11:27:29587浏览

## Does Promise.all() Execute Promises Sequentially or in Parallel?

并行还是顺序:Node.js 中 Promise.All() 的本质

出现一个关于 Promise 执行过程的问题。 Node.js 中的 all() 。它是顺序处理还是并发处理 Promise?

问题 1:顺序处理还是并行处理?

文档留下了歧义的空间,所以让我们澄清一下: Promise.all(iterable)不会像承诺链一样顺序执行所有承诺(例如,p1.then(p2).then(p3)...),也不会并行运行它们。相反,它等待多个 Promise 的解决。

Q2:实现顺序执行

如果 Promise.all() 缺乏顺序功能,有替代方案吗?

对于现有的一组 Promise,没有本地方法来强制顺序执行。但是,如果您有可迭代的异步函数,则可以使用 Array::reduce:

iterable.reduce((p, fn) => p.then(fn), Promise.resolve())
创建顺序执行链

以上是## Promise.all() 是顺序执行还是并行执行 Promise?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn