首頁  >  文章  >  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.all() 方法使用Promise.all().解決內部操作。此操作為每個 Promise 實例指派一個內部 [[Index]] 槽,指示其在原始輸入可迭代中的索引。

結論

基於規範和Promise.all() 的內部實現,我們可以自信地說解析值的順序被保留。解析後的陣列嚴格遵循輸入可迭代中 Promise 的順序。

以上是Promise.all 是否保留解析值的順序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn