Promise.race()

La méthode Promise.race(itérable) renvoie une promesse qui est résolue ou rejetée dès qu'une des promesses de l'itérables est résolue ou rejetée. La valeur (dans le cas de la résolution) ou la raison (dans le cas d'un échec) utilisée est celle de la promesse de l'itérable qui est resolue/qui échoue.

Syntaxe

Promise.race(itérable);

Paramètres

itérable
Un objet itérable, par exemple un Array. Voir la page itérable.

Valeur de retour

Une promesse (Promise) qui est résolue de la même façon que la première des promesses de l'itérable (tenue ou rompue).

Description

La fonction race renvoie une Promise qui est résolue/rejetée de la même façon que la première promesse de l'itérable à être résolue/rejetée.

Exemples

Utilisation de Promise.race – exemples avec setTimeout

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

Promise.race([p1, p2]).then(function(value) {
  console.log(value); // "deux"
  // Les deux promesses sont résolues mais p2 est plus rapide
});

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

Promise.race([p3, p4]).then(function(value) {
  console.log(value); // "trois"
  // p3 est plus rapide et entraîne la résolution de la promesse de compétition
}, function(reason) {
  // N'est pas appelée
});

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

Promise.race([p5, p6]).then(function(value) {
  // N'est pas appelée
}, function(reason) {
  console.log(reason); // "six"
  // p6 est plus rapide et rejète la promesse de compétition
});

Spécifications

Spécification État Commentaires
ECMAScript 2015 (6th Edition, ECMA-262)
La définition de 'Promise.race' dans cette spécification.
Standard Définition initiale au sein d'un standard ECMA.
ECMAScript 2017 Draft (ECMA-262)
La définition de 'Promise.race' dans cette spécification.
Projet  

Compatibilité des navigateurs

Fonctionnalité Chrome Edge Firefox Internet Explorer Opera Safari Servo
Support simple32.0(Oui)29.0Aucun support197.1Aucun support
Fonctionnalité Android Chrome for Android Edge Mobile Firefox for Android IE Mobile Opera Mobile Safari Mobile
Support simple4.4.432.0(Oui)29Aucun support(Oui)8.0

Voir aussi

Étiquettes et contributeurs liés au document

 Contributeurs à cette page : SphinxKnight, sylv1
 Dernière mise à jour par : SphinxKnight,