MDN wants to learn about developers like you: https://qsurvey.mozilla.com/s3/MDN-dev-survey

Метод Promise.race(iterable) возвращает выполненое или отклоненое обещание, в зависимости от того, с каким результатом завершится первое из переданных обещаний, со значением или причиной отклонения этого обещания.

Синтакс

Promise.race(iterable);

Параметры

iterable
Итерируемый объект, такой как (Array). Смотри iterable.

Возвращаемое значение

Выполненный или отклоненный Promise в зависимости от результата первого завершенного из переданных в итерируемом объекте обещаний.

Описание

Метод race  возвращает Обещание (Promise) с результатом, первого завершенного из переданных обещаний. Т.е. возвратит resolve или reject, в зависимости от того, что случится первым.

Примеры

Использование Promise.race – пример с setTimeout

var p1 = new Promise(function(resolve, reject) { 
    setTimeout(resolve, 500, "один"); 
});
var p2 = new Promise(function(resolve, reject) { 
    setTimeout(resolve, 100, "два"); 
});

Promise.race([p1, p2]).then(function(value) {
  console.log(value); // "два"
  // Оба вернули resolve, однако p2 вернул результат первым
});

var p3 = new Promise(function(resolve, reject) { 
    setTimeout(resolve, 100, "три");
});
var p4 = new Promise(function(resolve, reject) { 
    setTimeout(reject, 500, "четыре"); 
});

Promise.race([p3, p4]).then(function(value) {
  console.log(value); // "три"
  // p3 быстрее, поэтому выведется значение его resolve               
}, function(reason) {
  // Не вызывается
});

var p5 = new Promise(function(resolve, reject) { 
    setTimeout(resolve, 500, "пять"); 
});
var p6 = new Promise(function(resolve, reject) { 
    setTimeout(reject, 100, "шесть");
});

Promise.race([p5, p6]).then(function(value) {
  // Не вызывается
}, function(reason) {
  console.log(reason); // "шесть"
  // p6 быстрее, выводится его rejects
});

Спецификации

Спецификация Статус Комментарий
ECMAScript 2015 (6th Edition, ECMA-262)
Определение 'Promise.race' в этой спецификации.
Стандарт Изначальное определение в стандарте ECMA.
ECMAScript Latest Draft (ECMA-262)
Определение 'Promise.race' в этой спецификации.
Черновик  

Совместимость с браузерами

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support 32 29.0 (29.0) Нет 19 7.1
Feature Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile Chrome for Android
Basic support Нет 29.0 (29.0) Нет Нет 8 32

Смотрите также

Метки документа и участники

 Внесли вклад в эту страницу: nudaworks, hawker000, thedoctorde, AlexKhram, forsage
 Обновлялась последний раз: nudaworks,