Please note, this is a STATIC archive of website developer.mozilla.org from 03 Nov 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

Promise.race()

Эта статья нуждается в редакционном обзоре. Как вы можете помочь.

Перевод не завершен. Пожалуйста, помогите перевести эту статью с английского.

Метод 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 2017 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

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

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

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