
Promise.any(promises)는 모든 프로미스가 성공하지 않는 한 첫 번째 성공 프로미스의 결과를 반환합니다. 실패한 프로미스의 결과를 가져오려면, Promise.any(promises)를 사용하는 대신 Promise.allSettled(promises)를 사용하는 것이 좋습니다.
Promise.allSettled(promises)는 모든 프로미스가 성공하거나 실패하는 것을 기다립니다. 그리고 프로미스의 결과를 배열에 담아 반환합니다. 이 배열에는 성공 프로미스의 결과와 실패 프로미스의 이유가 포함됩니다.
예를 들어, 다음과 같이 사용할 수 있습니다.
#hostingforum.kr
javascript
const promises = [
new Promise((resolve, reject) => {
setTimeout(() => {
resolve('성공');
}, 1000);
}),
new Promise((resolve, reject) => {
setTimeout(() => {
reject('실패');
}, 2000);
}),
new Promise((resolve, reject) => {
setTimeout(() => {
resolve('성공');
}, 3000);
}),
];
Promise.allSettled(promises).then((results) => {
console.log(results);
});
이 예제에서는 Promise.allSettled(promises)를 사용하여 모든 프로미스의 결과를 가져옵니다. 결과는 다음과 같습니다.
#hostingforum.kr
json
[
{ status: 'fulfilled', value: '성공' },
{ status: 'rejected', reason: '실패' },
{ status: 'fulfilled', value: '성공' }
]
이 결과에서 첫 번째 프로미스의 결과는 성공 프로미스의 결과입니다. 두 번째 프로미스의 결과는 실패 프로미스의 이유입니다. 세 번째 프로미스의 결과는 성공 프로미스의 결과입니다.
2025-08-04 01:48