자바스크립트의 비동기 방식 'Promise'의 번외 기능들 정리.
Promise.race()
프로미스 경마
- race 안에 프로미스로만 구성된 배열을 넣어서 가장 빨리 완료된 프로미스 하나만 리턴
Promise.race([getPosition(), setTimer(1000)]).then((data) => {
console.log(data); // 먼저 완료된 setTimer의 data 출력
});

Promise.all()
- all 안에 프로미스 배열을 넣어서 모두 완료한 뒤에 각 프로미스의 리턴값들을 배열로 리턴
- 프로미스들 중 하나라도 에러가 발생하면 에러 처리 블록(then 두번째 인자 또는 catch 블록)으로 넘어감
=> 에러 발생한 프로미스 이후의 프로미스들은 실행되지 않음
Promise.all([getPosition(), setTimer(1000)]).then((promiseData) => {
console.log(promiseData); // getPosition, setTimer의 결과를 순서대로 배열에 담아 리턴
});


Promise.allSettled()
- Promise.all()에서 일부 프로미스가 실패했을 때, 이전 프로미스까지 모두 상태 완료 시킨 후 리턴
- all()의 단점 보완
- 프로미스들의 각 처리 완료 결과를 보고서 받는 느낌으로 자세히 알 수 있음
Promise.allSettled([getPosition(), setTimer(1000)]).then((promiseData) => {
console.log(promiseData);
});

'JS' 카테고리의 다른 글
| 번들링을 하는 이유? (0) | 2024.09.06 |
|---|---|
| 모듈화 정리 (0) | 2024.09.06 |
| HTTP 요청하기 & 에러 처리 (+ Axios) (0) | 2024.09.05 |
| HTTP 통신을 해보자 (0) | 2024.08.30 |
| 콜백 지옥, 프로미스, Async & Await (0) | 2024.08.29 |