- 개발하는 도중 다수의 API 호출을 받고 나서 다음 로직을 진행해야 했다. 그런 경우에는 Promise.all을 사용하는데, 해당 내용을 정리할 겸 비교도할 수 있는 Promise.allSettled에 대해서도 한 번 간략하게 알아보고자 한다.
Promise.all
모든 프로미스가 성공해야 결과를 반환한다.
- 하나라도 실패하면
reject
const p1 = Promise.resolve(1);
const p2 = Promise.resolve(2);
const p3 = Promise.resolve(3);
Promise.all([p1, p2, p3])
.then(results => {
console.log('All success:', results);
})
.catch(err => {
console.error('One failed:', err);
});
const p1 = Promise.resolve(1);
const p2 = Promise.reject('Error!');
const p3 = Promise.resolve(3);
Promise.all([p1, p2, p3])
.then(results => {
console.log('All success:', results);
})
.catch(err => {
console.error('One failed:', err);
});
Promise.allSettled
- 모든 프로미스의
성공/실패 여부와 관계없이 결과를 수집
const p1 = Promise.resolve(1);
const p2 = Promise.reject('Failed');
const p3 = Promise.resolve(3);
Promise.allSettled([p1, p2, p3])
.then(results => {
console.log(results);
});
- 개발하고 싶은 로직에 따라 원하는 것을 택해서 사용하면 된다