[javascript] Promise.all 메서드를 이용한 병렬 처리

JavaScript에서 비동기 작업을 처리할 때, 여러 개의 Promise 객체를 병렬로 처리해야 하는 경우가 있습니다. 이때 Promise.all 메서드를 사용하면 간편하게 여러 개의 Promise 객체를 하나로 묶어서 처리할 수 있습니다.

Promise.all 메서드란?

Promise.all 메서드는 여러 Promise 객체를 입력으로 받아, 모든 Promise 객체가 성공적으로 처리될 때에만 성공 값을 반환하는 메서드입니다. 만약 하나의 Promise 객체라도 실패할 경우, 전체 처리는 실패로 간주됩니다.

사용 예제

아래는 Promise.all 메서드의 간단한 사용 예제입니다.

const promise1 = new Promise((resolve, reject) => {
  setTimeout(resolve, 100, '첫 번째');
});

const promise2 = new Promise((resolve, reject) => {
  setTimeout(resolve, 200, '두 번째');
});

const promise3 = new Promise((resolve, reject) => {
  setTimeout(resolve, 50, '세 번째');
});

Promise.all([promise1, promise2, promise3])
  .then((values) => {
    console.log(values);
  })
  .catch((error) => {
    console.error(error);
  });

이 예제에서는 promise1, promise2, promise3 세 개의 Promise 객체를 Promise.all에 전달하여, 모든 Promise 객체가 성공적으로 처리될 때에만 그 결과 값들을 반환하도록 합니다.

마무리

Promise.all 메서드를 사용하면 여러 개의 Promise 객체를 효율적으로 관리하고 병렬로 처리할 수 있습니다. 여러 개의 비동기 작업이 필요한 경우, Promise.all을 적절히 활용하여 코드를 더욱 깔끔하게 작성할 수 있습니다.

더 자세한 내용은 MDN web docs에서 확인할 수 있습니다.