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
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
Pour contribuer à ces données de compatibilité, vous pouvez envoyer une poule requête sur : https://github.com/mdn/browser-compat-data/blob/master/javascript/promise.json.
Fonctionnalité | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | Servo |
---|---|---|---|---|---|---|---|
Support simple | 32.0 | (Oui) | 29.0 | Aucun support | 19 | 7.1 | Aucun support |
Fonctionnalité | Android | Chrome for Android | Edge Mobile | Firefox for Android | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|---|
Support simple | 4.4.4 | 32.0 | (Oui) | 29 | Aucun support | (Oui) | 8.0 |
Voir aussi
Étiquettes et contributeurs liés au document
Étiquettes :
Contributeurs à cette page :
SphinxKnight,
sylv1
Dernière mise à jour par :
SphinxKnight,