Promise.race()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since julho de 2015.
O método Promise.race(iterable) retorna uma promise que resolve ou rejeita assim que uma das promises no iterável resolver ou rejeitar, com o valor ou razão daquela promise.
Sintaxe
Promise.race(iterable);
Parâmetros
Descrição
A função race retorna uma Promise que é estabelecida da mesma forma que a primeira promise passada estabelecer. Ela resolve ou rejeita, o que acontecer primeiro.
Exemplos
>Usando Promise.race – exemplos com setTimeout
js
var p1 = new Promise(function (resolve, reject) { setTimeout(resolve, 500, "one"); }); var p2 = new Promise(function (resolve, reject) { setTimeout(resolve, 100, "two"); }); Promise.race([p1, p2]).then(function (value) { console.log(value); // "two" // Ambos resolvem, mas p2 é mais rápido }); var p3 = new Promise(function (resolve, reject) { setTimeout(resolve, 100, "three"); }); var p4 = new Promise(function (resolve, reject) { setTimeout(reject, 500, "four"); }); Promise.race([p3, p4]).then( function (value) { console.log(value); // "three" // p3 é mais rápido, então ela resolve }, function (reason) { // Não é chamado }, ); var p5 = new Promise(function (resolve, reject) { setTimeout(resolve, 500, "five"); }); var p6 = new Promise(function (resolve, reject) { setTimeout(reject, 100, "six"); }); Promise.race([p5, p6]).then( function (value) { // Não é chamado }, function (reason) { console.log(reason); // "six" // p6 é mais rápido, então ela rejeita }, ); Especificações
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-promise.race> |