Promise.all: 확인된 값의 순서 유지
Promise.all() 메서드는 반복 가능 항목을 인수로 사용하고 새 항목을 반환합니다. iterable의 모든 promise가 해결되면 해결되는 promise입니다. 질문이 생깁니다: 확인된 값의 순서가 iterable의 약속 순서와 일치하는 것이 보장됩니까?
MDN 문서에 따르면 확인된 값은 약속의 순서로 나타나야 합니다. 그러나 이 특정 동작에 대한 직접적인 참조는 사양에서 즉시 명확하지 않습니다.
사양을 더 자세히 살펴보면 PerformPromiseAll()이 Promise.all()에 전달된 반복 가능 항목을 통해 호출된다는 것을 알 수 있습니다. 그런 다음 PerformPromiseAll()은 Promise의 순서를 보장하는 IteratorStep()을 사용하여 반복 가능 항목을 반복합니다.
또한, 해결된 각 Promise에는 원래 입력 반복 가능 항목의 인덱스를 나타내는 내부 [[Index]] 슬롯이 있습니다. 이 슬롯은 확인 프로세스 중에 출력 배열이 원래 순서를 유지하는지 확인하는 데 사용됩니다.
요약하면 Promise.all()에서 확인된 값의 순서는 입력이 유지되는 한 엄격하게 유지됩니다. iterable이 주문되었습니다. 이는 다음 코드 조각에 예시되어 있습니다.
<code class="js">const slow = new Promise(resolve => setTimeout(resolve, 200, 'slow')); const instant = 'instant'; const quick = new Promise(resolve => setTimeout(resolve, 50, 'quick')); Promise.all([slow, instant, quick]).then(responses => { responses.map(response => console.log(response)); }); // Output: [ 'instant', 'quick', 'slow' ]</code>
위 내용은 `Promise.all()`은 확인된 값의 순서를 유지합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!