라이브러리

[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)
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 10,077건 / 3 페이지

검색

게시물 검색