Promise.allSettled를 사용하면 결괏값이 좀 더 자세해져서 어떤 프로미스가 reject되었는지 status를 통해 알 수 있습니다. 실패 이유는 reason에 들어 있습니다. 따라서 Promise.all 대신 Promise.allSettled를 사용하는 것을 좀 더 권장합니다.
참고로 Node 16 버전부터는 reject된 Promise에 catch를 달지 않으면 UnhandledPromiseRejection 에러가 발생합니다. 에러가 발생하면 다음 코드가 실행되지 않으니 반드시 프로미스에 catch 메서드를 붙이는 것을 권장합니다.
try { Promise.reject('에러'); } catch (e) { console.error(e); // UnhandledPromiseRejection: This error originated either by throwing inside... } Promise.reject('에러').catch(() => { // catch 메서드를 붙이면 에러가 발생하지 않음 })