This is a new technology, part of the ECMAScript 2015 (ES6) standard.
This technology's specification has been finalized, but check the compatibility table for usage and implementation status in various browsers.
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
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
Especificação | Status | Comentário |
---|---|---|
ECMAScript 2015 (6th Edition, ECMA-262) The definition of 'Promise.race' in that specification. |
Standard | Definição inicial em um padrão ECMA. |
Compatibilidade com browsers
Funcionalidade | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Suporte básico | 32 | 29.0 (29.0) | Não suportado | 19 | 7.1 |
Funcionalidade | Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile | Chrome for Android |
---|---|---|---|---|---|---|
Suporte básico | Não suportado | 29.0 (29.0) | Não suportado | Não suportado | 8 | 32 |
Ver também
Etiquetas do documento e colaboradores
Etiquetas:
Colaboradores desta página:
gustavohenke
Última atualização por:
gustavohenke,