Promise.allSettled()의 에러 핸들링

임혁진·2024년 2월 8일
0

로빌

목록 보기
13/15

Promise.allSettled() 사용 이유

계정 생성 api를 만드는데 계정 생성이 가능한지 validation check를 하기 위한 함수들이 있다. 조건 확인을 병렬적으로 처리하기 위해 처음에 Promise.all()을 사용했지만 에러 핸들링 시에 가장 먼저 실패한 에러만 반환하기 때문에 validation 실패의 사유를 모두 확인할 수 없었다. 그래서 모든 성공, 실패 결과를 확인할 수 있는 Promise.allSettled()를 사용하기로 했다.

에러 핸들링

Promise.all()은 try catch문 안에서 사용시 에러 하나가 발생하면 바로 catch로 넘어간다. 하지만 Promise.allSettled()는 성공, 실패 결과를 포함한 배열만 반환하고 추가적인 작업은 하지 않는다. 즉 실패한 요청이 있더라도 에러를 발생시키지 않는다.

실패한 요청을 확인하고 에러를 발생시키기 위해선 결과 배열에서 실패한 요청이 있는지 확인한 후 직접 에러를 던지면 된다.

profile
TIL과 알고리즘

0개의 댓글