728x90
많은 양을 처리하다보니 Promise를 자주 쓰게 되는데 Promise 메서드도 여러 종류가 있어서
한번 정리를 해야겠다 싶어서 주요 메서드만 정리를 해봅니다.
메서드 | 설명 | 사용 이유 |
Promise.resolve | Promise 를 즉시 fulfilled 상태로 생성 | 1. 이미 값을 알고 있는 경우 Promise 객체로 변환 2. 비동기 코드에서 값을 통일된 방식으로 처리 |
Promise.reject | Promise 를 즉시 rejected 상태로 생성 | 에러를 즉시 반환하고 싶을 때 사용 |
Promise.all | 주어진 Promise 객체들의 배열(iterable)을 병렬로 실행하며, 모든 fulFilled 상태가 될 때까지 대기 (하나라도 reject뜨면 rejected 형태가 됨) | 여러 비동기 작업을 병렬로 실행하고, 모든 작업이 완료된 후 결과를 한꺼번에 처리 |
Promise.allSettled | 주어진 Promise 객체들의 배열(iterable)을 병렬로 실행하며, 모든 상태가(fulfilled or rejected)가 완료될 떄 결과를 반환 (결과는 객체 배열로 반환되며, 각각 status, value, reason 속성을 포함) |
실패한 작업이 있어도 나머지 작업의 결과를 모두 확인하고 싶을 때 |
Promise.race | 주어진 Promise 객체들의 배열 중 가장 먼저 완료된 Promise를 반환 | 여러 비동기 작업 중 가장 빠른 결과를 처리 |
Promise.any | 주어진 Promise 객체들의 배열 중 가장 먼저 fulfilled 상태가 된 Promise를 반환 (다 rejected이면 AggregateError 반환) |
여러 작업 중 성공한 결과만 필요할 때 |
then | fulfilled 상태일 때 실행할 콜백과, rejected 상태일 때 실행할 콜백을 설정 체이닝을 통해 다음 단계로 값을 전달 가능 |
성공 또는 실패에 따라 다른 처리를 수행 |
catch | rejected 상태가 된 경우에 실행할 콜백을 설정 | 에러를 처리하거나 복구 작업을 수행 |
finally | fulfilled 또는 rejected 상태와 관계없이 항상 실행되는 콜백을 설정 리소스 정리나 로깅 등에 유용 |
상태와 관계없이 공통적으로 실행해야 할 작업을 처리 |
728x90