
Promise.race(promises) 함수는 여러 개의 프로미스를 동시에 처리하고, 가장 먼저 완료된 프로미스의 결과를 반환합니다. 만약 첫 번째 프로미스가 완료된 후 다른 프로미스가 완료되더라도, 첫 번째 프로미스의 결과만 반환됩니다.
이러한 동작을 원치 않는다면, Promise.all(promises) 함수를 사용할 수 있습니다. Promise.all(promises) 함수는 모든 프로미스가 완료된 후, 모든 프로미스의 결과를 반환합니다. 만약 하나의 프로미스가 실패하면, Promise.all(promises) 함수는 실패한 프로미스의 결과를 반환합니다.
또한, Promise.allSettled(promises) 함수를 사용할 수 있습니다. Promise.allSettled(promises) 함수는 모든 프로미스가 완료된 후, 모든 프로미스의 결과를 반환합니다. 만약 하나의 프로미스가 실패하면, 실패한 프로미스의 결과를 반환합니다.
예를 들어, 다음과 같이 사용할 수 있습니다.
#hostingforum.kr
javascript
const promises = [
new Promise((resolve, reject) => {
setTimeout(() => {
resolve('첫 번째 프로미스의 결과');
}, 1000);
}),
new Promise((resolve, reject) => {
setTimeout(() => {
resolve('두 번째 프로미스의 결과');
}, 2000);
}),
new Promise((resolve, reject) => {
setTimeout(() => {
reject('세 번째 프로미스의 결과');
}, 3000);
}),
];
Promise.all(promises).then((results) => {
console.log(results);
}).catch((error) => {
console.error(error);
});
Promise.allSettled(promises).then((results) => {
console.log(results);
});
위 예제에서, Promise.all(promises) 함수는 첫 번째 프로미스의 결과를 반환합니다. 하지만, Promise.allSettled(promises) 함수는 모든 프로미스의 결과를 반환합니다.
2025-04-07 10:35