배열로 작업할 때 Promise 간에 매개변수를 전달하여 각 요소에 대한 일련의 작업을 순차적으로 실행해야 하는 경우가 많습니다.
이를 달성하려면 중첩된 일련의 .then() 호출을 사용할 수 있습니다. 그러나 배열 크기가 증가함에 따라 이 접근 방식은 번거롭고 유연하지 않게 됩니다.
간단한 해결책은 .reduce() 메서드를 사용하여 배열을 시리즈로 접는 것입니다. 약속:
<code class="js">const promiseChain = myArray.reduce( (p, x) => p.then(() => myPromise(x)), Promise.resolve() );</code>
보다 유지 관리하기 쉬운 접근 방식은 배열을 반복하고 각 약속을 순차적으로 실행하는 비동기 함수를 사용하는 것입니다.
<code class="js">const forEachSeries = async (iterable, action) => { for (const x of iterable) { await action(x); } }; forEachSeries(myArray, myPromise);</code>
Promise의 반환 값이 필요한 경우 mapSeries 함수를 약간 수정하여 사용할 수 있습니다.
<code class="js">const mapSeries = async (iterable, fn) => { const results = []; for (const x of iterable) { results.push(await fn(x)); } return results; };</code>
이 접근 방식은 다음과 같은 경우 더 큰 유연성과 코드 가독성을 제공합니다. 약속의 동적 배열을 처리합니다.
위 내용은 동적 배열에 대해 Promise를 순차적으로 실행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!