Promise.race(iterable) 메서드는 Promise 객체를 반환합니다. 이 Promise 객체의 결과값은 iterable 안에 있는 Promise 중에 가장 먼저 resolve 또는 reject 된 Promise의 결과값이 됩니다.

구문

Promise.race(iterable);

매개변수

iterable
Array와 같은 iterable 객체. iterable을 참고하세요.

설명

race 함수는 최초 통과 처리한 프로미스와 같은 식으로 처리되는 Promise를 반환합니다. 결정(resolve) 또는 거부합니다, 어느 쪽이 먼저 일어나든.

setTimeout과 함께 Promise.race 사용 예

var p1 = new Promise(function(resolve, reject) {
    setTimeout(resolve, 500, "one");
});
var p2 = new Promise(function(resolve, reject) {
    setTimeout(resolve, 100, "two");
});

Promise.race([p1, p2]).then(function(value) {
  console.log(value); // "two"
  // 모두 결정하지만 p2가 더 빠름
});

var p3 = new Promise(function(resolve, reject) {
    setTimeout(resolve, 100, "three");
});
var p4 = new Promise(function(resolve, reject) {
    setTimeout(reject, 500, "four");
});

Promise.race([p3, p4]).then(function(value) {
  console.log(value); // "three"
  // p3이 더 빠르기에 결정함
}, function(reason) {
  // 호출되지 않음
});

var p5 = new Promise(function(resolve, reject) {
    setTimeout(resolve, 500, "five");
});
var p6 = new Promise(function(resolve, reject) {
    setTimeout(reject, 100, "six");
});

Promise.race([p5, p6]).then(function(value) {
  // 호출되지 않음
}, function(reason) {
  console.log(reason); // "six"
  // p6이 더 빠르기에 거부함
});

스펙

스펙 상태 설명
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Promise.race' in that specification.
Standard ECMA 표준에서 초기 정의.
ECMAScript Latest Draft (ECMA-262)
The definition of 'Promise.race' in that specification.
Draft  

브라우저 호환성

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic support32 Yes29 No198
FeatureAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Basic support4.4.432 Yes29 Yes8 Yes

 

참조

문서 태그 및 공헌자

이 페이지의 공헌자: seungha-kim, fscholz, Netaras
최종 변경자: seungha-kim,