[Javascript] Promise.all과 Promise.allSettled

Dev_sheep·2025년 5월 14일
  • 개발하는 도중 다수의 API 호출을 받고 나서 다음 로직을 진행해야 했다. 그런 경우에는 Promise.all을 사용하는데, 해당 내용을 정리할 겸 비교도할 수 있는 Promise.allSettled에 대해서도 한 번 간략하게 알아보고자 한다.

Promise.all

  • 모든 프로미스가 성공해야 결과를 반환한다.
  • 하나라도 실패하면 reject
// [ 성공 예시 ]
const p1 = Promise.resolve(1);
const p2 = Promise.resolve(2);
const p3 = Promise.resolve(3);

Promise.all([p1, p2, p3])
  .then(results => {
    console.log('All success:', results); // [1, 2, 3]
  })
  .catch(err => {
    console.error('One failed:', err);
  });

// [ 실패 예시 ]
const p1 = Promise.resolve(1);
const p2 = Promise.reject('Error!');
const p3 = Promise.resolve(3);

Promise.all([p1, p2, p3])
  .then(results => {
    console.log('All success:', results);
  })
  .catch(err => {
    console.error('One failed:', err); // 'Error!'
  });

Promise.allSettled

  • 모든 프로미스의 성공/실패 여부와 관계없이 결과를 수집
const p1 = Promise.resolve(1);
const p2 = Promise.reject('Failed');
const p3 = Promise.resolve(3);

Promise.allSettled([p1, p2, p3])
  .then(results => {
    console.log(results);
    /*
    [
      { status: 'fulfilled', value: 1 },
      { status: 'rejected', reason: 'Failed' },
      { status: 'fulfilled', value: 3 }
    ]
    */
  });
  • 개발하고 싶은 로직에 따라 원하는 것을 택해서 사용하면 된다
profile
기록과 공유

0개의 댓글