라이브러리
[JAVASCRIPT] Promise.race(promises) - 가장 먼저 완료된 프로미스의 결과 반환
Promise.race(promises)란?
`Promise.race(promises)`는 JavaScript의 Promise API 중 하나로, 여러 개의 Promise를 전달받고, 가장 먼저 resolved 또는 rejected된 Promise의 결과를 반환하는 메서드입니다.
예제
#hostingforum.kr
javascript
// Promise.race(promises) 예제
const promise1 = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Promise 1 resolved');
}, 2000);
});
const promise2 = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Promise 2 resolved');
}, 1000);
});
const promise3 = new Promise((resolve, reject) => {
setTimeout(() => {
reject('Promise 3 rejected');
}, 1500);
});
Promise.race([promise1, promise2, promise3])
.then((result) => {
console.log(result); // Promise 2 resolved
})
.catch((error) => {
console.error(error); // Promise 3 rejected
});
예제 설명
위 예제에서, `promise1`, `promise2`, `promise3`은 각각 2초, 1초, 1.5초 후에 resolved 또는 rejected되는 Promise입니다. `Promise.race([promise1, promise2, promise3])`를 호출하면, 가장 먼저 resolved 또는 rejected된 Promise의 결과가 반환됩니다.
결과적으로, `promise2`가 가장 먼저 resolved되기 때문에, `Promise 2 resolved`가 콘솔에 출력됩니다. 만약 `promise3`가 가장 먼저 rejected되면, `Promise 3 rejected`가 콘솔에 출력됩니다.
사용 사례
`Promise.race`는 다음 상황에서 유용합니다.
* 시간 제한: 여러 개의 Promise가 존재할 때, 가장 먼저 resolved 또는 rejected된 Promise의 결과를 반환하고 싶을 때 사용할 수 있습니다.
* 중첩된 Promise: 중첩된 Promise를 처리할 때, 가장 먼저 resolved 또는 rejected된 Promise의 결과를 반환하고 싶을 때 사용할 수 있습니다.
참고 자료
* [MDN Web Docs - Promise.race()](https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Promise/race)
* [ECMAScript Internationalization API - Promise.race()](https://tc39.es/ecma262/#sec-promise.race)
댓글목록
등록된 댓글이 없습니다.