>  기사  >  웹 프론트엔드  >  배열 매개변수를 사용하여 Promise를 순차적으로 실행하는 방법은 무엇입니까?

배열 매개변수를 사용하여 Promise를 순차적으로 실행하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-10-20 14:59:02449검색

How to Execute Promises Sequentially with Array Parameters?

배열 매개변수를 사용하여 순차적으로 Promise 실행

일부 시나리오에서는 배열에서 매개변수를 전달하여 Promise를 순차적으로 실행해야 할 수도 있습니다. 이는 배열이 동적으로 채워지고 실행 순서가 중요한 경우에 필요합니다.

"일시 중지 가능한 루프"를 만드는 한 가지 방법은 .then 메서드를 반복적으로 사용하는 것입니다. 그러나 이는 번거로울 수 있으며 피라미드 모양의 Promise 체인이 될 수 있습니다.

Promise 사용

더 깔끔한 솔루션은 Array.reduce를 사용하여 Promise 체인을 단일 Promise로 접는 것입니다.

myArray.reduce(
  (p, x) =>
    p.then(() => myPromise(x)),
  Promise.resolve()
)

이 접근 방식은 일련의 연결된 약속을 생성하여 순차적 실행을 보장합니다.

비동기 함수 사용

또는 비동기 함수를 사용하면 더 읽기 쉽고 효율적인 구현이 가능합니다. 다음 예에서는 비동기 함수를 사용하여 Promise를 반복하고 실행합니다.

const forEachSeries = async (iterable, action) => {
  for (const x of iterable) {
    await action(x)
  }
}

forEachSeries(myArray, myPromise)

반환 값 수집

Promise에서 반환 값을 수집해야 하는 경우 수정된 버전을 사용할 수 있습니다. mapSeries라는 forEachSeries 함수:

const mapSeries = async (iterable, fn) => {
  const results = []

  for (const x of iterable) {
    results.push(await fn(x))
  }

  return results
}

이 함수는 반복 가능 항목을 반복하여 약속의 결과를 수집하고 결과 배열을 반환합니다.

이러한 기술을 사용하면 다음을 수행할 수 있습니다. Promise를 순차적으로 쉽게 실행하고, 배열에서 매개변수를 전달하고, 실행 순서를 확인하고, 필요에 따라 결과를 수집합니다.

위 내용은 배열 매개변수를 사용하여 Promise를 순차적으로 실행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.