并行还是顺序: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中文网其他相关文章!