JavaScript Promise.race()-methode

Javascript Promise Race Methode



De methode Promise.race() is een ingebouwde methode van JavaScript die een herhaling van beloften als argument neemt en de eerste belofte retourneert die is opgelost of afgewezen. De methode Promis.race() retourneert ofwel de vervullingswaarde of de reden voor afwijzing. Iterables zijn objecten die kunnen worden doorlopen, zoals arrays, strings en kaarten.

Wat zijn beloften eigenlijk?

Asynchrone code kan worden behandeld met beloften. Ze nemen een functie die bekend staat als de uitvoerder als parameter. Wanneer een belofte wordt gemaakt, wordt de uitvoerder automatisch asynchroon uitgevoerd en retourneert hij een waarde voor het geval deze wordt nagekomen, anders wordt de reden voor de afwijzing geretourneerd:

laat voorbeeld_beloven = nieuwBelofte ( ( oplossen, afwijzen ) => {
oplossen ( 'Belofte is uitgekomen' ) ;
} ) ;

voorbeeld_belofte. dan ( r => troosten. log ( r ) ) ;







Asynchrone aard van beloften:



laat voorbeeld_beloven = nieuwBelofte ( ( oplossen, afwijzen ) => {
oplossen ( 'Belofte is uitgekomen' ) ;
} ) ;

voorbeeld_belofte. dan ( r => troosten. log ( r ) ) ;
troosten. log ( '1,2,3...' ) ;



Hoe de Promise.race()-methode te gebruiken?

Geef een herhaling van beloften door aan de methode Promise.race() en krijg de geretourneerde waarde in variabele:





laat prom1 = nieuwBelofte ( ( oplossen, afwijzen ) => {
setTime-out ( ( ) => oplossen ( 'Belofte is uitgekomen' ) , 500 ) ;
} ) ;

laat prom2 = nieuwBelofte ( ( oplossen, afwijzen ) => {
setTime-out ( ( ) => afwijzen ( 'Belofte kon niet worden opgelost' ) , 250 ) ;
} ) ;

laat temp = Belofte. ras ( [ prom1, prom2 ] ) ;

temp. vangst ( reden => troosten. log ( reden ) ) ;

In dit voorbeeld hadden we twee beloften. De eerste belofte werd na 500 ms opgelost en de tweede belofte werd net na 250 seconden afgewezen. Omdat de tweede belofte de eerste was die werd opgelost of afgewezen, werd deze geretourneerd door de methode Promise.race().



Als het argument dat is doorgegeven aan de Promise.race()-methode een lege iterable is, zal de methode een eeuwig wachtende belofte retourneren:

laat temp = Belofte. ras ( [ ] ) ;

troosten. log ( temp ) ;

Als het argument iterable niet-belofte waarden of beloften heeft die al zijn vervuld of afgewezen, dan zal de methode genoegen nemen met de eerste waarde in de array:

laat p1 = nieuwBelofte ( ( oplossen, afwijzen ) => {
oplossen ( 'P1 is opgelost' ) ;
} ) ;

laat p2 = nieuwBelofte ( ( oplossen, afwijzen ) => {
oplossen ( 'P2 is opgelost' ) ;
} ) ;

laat temp = Belofte. ras ( [ p1,p2 ] ) ;
temp. dan ( waarde => troosten. log ( waarde ) ) ;

Promise.race() methodecontrole voor zowel opgeloste als afgewezen beloften. Deze methode heeft ook een ander alternatief, namelijk de Promise.any() -methode die kan worden gebruikt om te controleren op de vervulde beloften.

Conclusie

De methode Promise.race() wordt gebruikt om de eerste belofte te krijgen die wordt vervuld of afgewezen uit een reeks beloften. De belofte die het eerst wordt vervuld of afgewezen, is de retourwaarde van Promise.race(). Het artikel gaf diepgaand inzicht in de Promise.race()-methode.