Método JavaScript Promise.race()

Metodo Javascript Promise Race



O método Promise.race() é um método embutido de JavaScript que recebe um iterável de promessas como argumento e retorna a primeira promessa que é resolvida ou rejeitada. O método Promise.race() retornará o valor de cumprimento ou o motivo da rejeição. Iterables são objetos que podem ser executados em loop, como Arrays, Strings e Maps.

O que são Promessas afinal?

O código assíncrono pode ser tratado com promessas. Eles usam uma função conhecida como executor como parâmetro. Quando uma promessa é criada, o executor executa automaticamente de forma assíncrona e retorna um valor caso seja cumprido, senão retorna o motivo da rejeição:

deixe exemplo_promessa = nova promessa ( ( resolver, rejeitar ) => {
resolver ( 'Promessa foi resolvida' ) ;
} ) ;

exemplo_promessa. então ( r => console. registro ( r ) ) ;







Natureza assíncrona das promessas:



deixe exemplo_promessa = nova promessa ( ( resolver, rejeitar ) => {
resolver ( 'Promessa foi resolvida' ) ;
} ) ;

exemplo_promessa. então ( r => console. registro ( r ) ) ;
console. registro ( '1,2,3...' ) ;



Como usar o método Promise.race()?

Passe um iterável de promessas para o método Promise.race() e obtenha seu valor de retorno na variável:





vamos baile1 = nova promessa ( ( resolver, rejeitar ) => {
setTimeout ( ( ) => resolver ( 'Promessa foi resolvida' ) , 500 ) ;
} ) ;

vamos baile2 = nova promessa ( ( resolver, rejeitar ) => {
setTimeout ( ( ) => rejeitar ( 'A promessa não pôde ser resolvida' ) , 250 ) ;
} ) ;

deixe temp = Promessa. corrida ( [ baile1, baile2 ] ) ;

temperatura truque ( razão => console. registro ( razão ) ) ;

Neste exemplo, tivemos duas promessas. A primeira promessa foi resolvida após 500ms e a segunda promessa foi rejeitada logo após 250 segundos. Como a segunda promessa foi a primeira a ser resolvida ou rejeitada, ela foi retornada pelo método Promise.race().



Se o argumento passado para o método Promise.race() for um iterável vazio, então o método retornará uma promessa sempre pendente:

deixe temp = Promessa. corrida ( [ ] ) ;

console. registro ( temperatura ) ;

Se o argumento iterável tiver quaisquer valores ou promessas que não sejam promessas que já tenham sido cumpridas ou rejeitadas, o método se contentará com o primeiro valor na matriz:

deixe p1 = nova promessa ( ( resolver, rejeitar ) => {
resolver ( 'P1 foi resolvido' ) ;
} ) ;

deixe p2 = nova promessa ( ( resolver, rejeitar ) => {
resolver ( 'P2 foi resolvido' ) ;
} ) ;

deixe temp = Promessa. corrida ( [ p1, p2 ] ) ;
temperatura então ( valor => console. registro ( valor ) ) ;

O método Promise.race() verifica as promessas resolvidas e rejeitadas. Este método também tem outra alternativa que é o método Promise.any() que pode ser usado apenas para verificar as promessas cumpridas.

Conclusão

O método Promise.race() é usado para obter a primeira promessa que é cumprida ou rejeitada de um iterável de promessas. A promessa que é cumprida ou rejeitada mais cedo é o valor de retorno de Promise.race(). O artigo forneceu informações detalhadas sobre o método Promise.race().