首页  >  文章  >  web前端  >  Promise.all 是否保留解析值的顺序?

Promise.all 是否保留解析值的顺序?

Barbara Streisand
Barbara Streisand原创
2024-11-04 12:15:02235浏览

Does Promise.all Preserve the Order of Resolved Values?

Promise.all 中解析值的顺序

Promise.all 方法接受一个可迭代对象作为参数,并返回一个解析的单个 Promise一旦 iterable 中的所有 Promise 都已解决,就会转换为值数组。文档建议保留解析数组中值的顺序,但是有更权威的来源吗?

规范中的顺序保留

ECMAScript 规范Promise.all 声明:

promiseList 中的所有 Promise 实例都已解析,并且结果列表中它们各自的元素被设置为相应的值。

这表明输入可迭代中的 Promise 实例的顺序保留在输出数组中。

内部实现

为了解析 Promise,Promise.all() 方法使用Promise.all().解决内部操作。此操作为每个 Promise 实例分配一个内部 [[Index]] 槽,指示其在原始输入可迭代中的索引。

结论

基于规范和Promise.all() 的内部实现,我们可以自信地说解析值的顺序被保留。解析后的数组严格遵循输入可迭代中 Promise 的顺序。

以上是Promise.all 是否保留解析值的顺序?的详细内容。更多信息请关注PHP中文网其他相关文章!

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