
Promise.all() 함수는 여러 개의 Promise가 모두 성공적으로 완료되면, 모두의 결과를 배열에 담아 반환합니다. 하지만, 하나의 Promise라도 실패하면, Promise.all() 함수는 실패한 Promise의 결과를 반환하지 않고, 에러를 발생시킵니다.
예를 들어, 다음과 같은 코드를 살펴보겠습니다.
#hostingforum.kr
javascript
const promise1 = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Promise 1 성공');
}, 2000);
});
const promise2 = new Promise((resolve, reject) => {
setTimeout(() => {
reject('Promise 2 실패');
}, 2000);
});
Promise.all([promise1, promise2])
.then((results) => {
console.log(results);
})
.catch((error) => {
console.error(error);
});
위 코드를 실행하면, Promise.all() 함수는 promise2가 실패한 결과인 "Promise 2 실패"를 반환하지 않고, 에러를 발생시킵니다.
이러한 특성은 Promise.all() 함수가 모든 Promise가 성공적으로 완료될 때까지 기다리지 않고, Promise.all() 함수가 호출된 즉시 실행되기 때문입니다. 따라서, 하나의 Promise라도 실패하면, Promise.all() 함수는 즉시 에러를 발생시킵니다.
2025-05-15 03:50