--- title: Promise.race() slug: Web/JavaScript/Reference/Global_Objects/Promise/race tags: - ECMAScript2015 - ECMAScript6 - JavaScript - Promesa - metodo translation_of: Web/JavaScript/Reference/Global_Objects/Promise/race original_slug: Web/JavaScript/Referencia/Objetos_globales/Promise/race ---
El método Promise.race(iterable) retorna una promesa que se cumplirá o no tan pronto como una de las promesas del argumento iterable se cumpla o se rechace, con el valor o razón de rechazo de ésta.
Promise.race(iterable);
Una {{jsxref("Promise")}} que se cumple o se rechaza tan pronto como una de las promesas dadas en el argumento iterable se cumple o se rechaza.
La función race retorna una Promise que se comporta como tal. Se cumple o se rechaza, lo que suceda antes en alguno de sus argumentos (iterable).
Promise.race – ejemplos con setTimeoutvar p1 = new Promise( (resolve, reject) => {
setTimeout(resolve, 500, "uno");
});
var p2 = new Promise( (resolve, reject) => {
setTimeout(resolve, 100, "dos");
});
Promise.race([p1, p2]).then( value => {
console.log(value); // "dos"
// Ambas se resuelven, pero la p2 antes.
});
// Ejemplo con un resolve y un reject en el mismo método race.
var p3 = new Promise( (resolve, reject) => {
setTimeout(resolve, 100, "tres");
});
var p4 = new Promise( (resolve, reject) => {
setTimeout(reject, 500, "cuatro");
});
Promise.race([p3, p4]).then( value => {
console.log(value); // "tres"
// p3 es mas rápida, así que se resuelve el race
}, reason => {
// No es llamado
});
var p5 = new Promise( (resolve, reject) => {
setTimeout(resolve, 500, "cinoc");
});
var p6 = new Promise( (resolve, reject) => {
setTimeout(reject, 100, "seis");
});
Promise.race([p5, p6]).then( value => {
// No es llamado
}, reason => {
console.log(reason); // "seis"
// p6 es mas rápida, así que se rechaza
});
| Especificación | Status | Comentar |
|---|---|---|
| {{SpecName('ES6', '#sec-promise.race', 'Promise.race')}} | {{Spec2('ES6')}} | Initial definition in an ECMA standard. |
| {{SpecName('ESDraft', '#sec-promise.race', 'Promise.race')}} | {{Spec2('ESDraft')}} |
{{Compat}}