
Promise.all(promises) 함수를 사용할 때, 어떤 Promise가 실패하면 모든 Promise가 실패하는 것을 알 수 있습니다. 이 경우, 실패한 Promise의 에러를 처리할 수 있습니다.
Promise.all(promises) 함수는 then() 메소드와 catch() 메소드를 모두 호출합니다. catch() 메소드는 Promise.all(promises) 함수가 실패할 때 호출됩니다. 따라서, 어떤 Promise가 실패하면 catch() 메소드 내의 코드를 실행할 수 있습니다.
예를 들어, 다음과 같은 코드를 살펴보겠습니다.
#hostingforum.kr
javascript
const promise1 = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Promise1 성공');
}, 2000);
});
const promise2 = new Promise((resolve, reject) => {
setTimeout(() => {
reject('Promise2 실패');
}, 1000);
});
Promise.all([promise1, promise2])
.then((결과) => {
console.log(결과);
})
.catch((에러) => {
console.log(에러); // Promise2 실패
});
Promise.allSettled() 함수를 사용하면 모든 Promise가 처리될 때까지 기다립니다. 이 함수는 then() 메소드를 호출하여 모든 Promise의 결과를 반환합니다.
Promise.allSettled() 함수는 then() 메소드에 두 개의 인수를 전달합니다. 첫 번째 인수는 Promise.allSettled() 함수의 결과를 반환하는 함수입니다. 두 번째 인수는 Promise.allSettled() 함수가 실패할 때 호출되는 함수입니다.
예를 들어, 다음과 같은 코드를 살펴보겠습니다.
#hostingforum.kr
javascript
const promise1 = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Promise1 성공');
}, 2000);
});
const promise2 = new Promise((resolve, reject) => {
setTimeout(() => {
reject('Promise2 실패');
}, 1000);
});
Promise.allSettled([promise1, promise2])
.then((결과) => {
console.log(결과);
})
.catch((에러) => {
console.log(에러);
});
Promise.allSettled() 함수의 결과는 다음과 같습니다.
#hostingforum.kr
javascript
[
{ status: 'fulfilled', value: 'Promise1 성공' },
{ status: 'rejected', reason: 'Promise2 실패' }
]
Promise.allSettled() 함수를 사용하면 모든 Promise가 처리될 때까지 기다리고, 모든 Promise의 결과를 반환할 수 있습니다.
2025-06-25 15:03