더북(TheBook)

Promise.allSettled를 사용하면 결괏값이 좀 더 자세해져서 어떤 프로미스가 reject되었는지 status를 통해 알 수 있습니다. 실패 이유는 reason에 들어 있습니다. 따라서 Promise.all 대신 Promise.allSettled를 사용하는 것을 좀 더 권장합니다.

참고로 Node 16 버전부터는 rejectPromisecatch를 달지 않으면 UnhandledPromiseRejection 에러가 발생합니다. 에러가 발생하면 다음 코드가 실행되지 않으니 반드시 프로미스에 catch 메서드를 붙이는 것을 권장합니다.

try {
  Promise.reject('에러');
} catch (e) {
  console.error(e); // UnhandledPromiseRejection: This error originated either by throwing inside...
}

Promise.reject('에러').catch(() => {
  // catch 메서드를 붙이면 에러가 발생하지 않음
})
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.