Promise.race(iterable) 메서드는 iterable 내 프로미스 중 하나가 결정(resolve) 또는 거부하자마자 결정 또는 거부하는 프로미스를 반환합니다, 그 프로미스로부터 값 또는 이유로.
구문
Promise.race(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이 더 빠르기에 거부함
});
스펙
브라우저 호환성
| Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|
| Basic support | 32 | 29.0 (29.0) | No support | 19 | 7.1 |
| Feature | Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile | Chrome for Android |
|---|---|---|---|---|---|---|
| Basic support | No support | 29.0 (29.0) | No support | No support | 8 | 32 |