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().