Mètode JavaScript Promise.race().

Metode Javascript Promise Race



El mètode Promise.race() és un mètode integrat de JavaScript que pren un iterable de promeses com a argument i retorna la primera promesa que es resol o es rebutja. El mètode Promise.race() retornarà el valor de compliment o el motiu del rebuig. Els iterables són objectes que es poden circular com ara Arrays, Strings i Maps.

Què són les promeses de totes maneres?

El codi asíncron es pot tractar amb promeses. Prenen una funció coneguda com a executor com a paràmetre. Quan es crea una promesa, l'executor s'executa automàticament de manera asíncrona i retorna un valor en cas que es compleixi, sinó retorna el motiu del rebuig:

deixa exemple_promesa = nova promesa ( ( resoldre, rebutjar ) => {
resoldre ( 'La promesa s'ha resolt' ) ;
} ) ;

exemple_promesa. aleshores ( r => consola. registre ( r ) ) ;







Naturalesa asíncrona de les promeses:



deixa exemple_promesa = nova promesa ( ( resoldre, rebutjar ) => {
resoldre ( 'La promesa s'ha resolt' ) ;
} ) ;

exemple_promesa. aleshores ( r => consola. registre ( r ) ) ;
consola. registre ( '1,2,3...' ) ;



Com utilitzar el mètode Promise.race()?

Passeu un iterable de promeses al mètode Promise.race() i obteniu el seu valor de retorn a la variable:





deixem el ball 1 = nova promesa ( ( resoldre, rebutjar ) => {
setTimeout ( ( ) => resoldre ( 'La promesa s'ha resolt' ) , 500 ) ;
} ) ;

deixar prom2 = nova promesa ( ( resoldre, rebutjar ) => {
setTimeout ( ( ) => rebutjar ( 'La promesa no es va poder resoldre' ) , 250 ) ;
} ) ;

deixar temp = Promesa. carrera ( [ prom1, prom2 ] ) ;

temp. agafar ( raó => consola. registre ( raó ) ) ;

En aquest exemple teníem dues promeses. La primera promesa es va resoldre després de 500 ms i la segona promesa es va rebutjar poc després de 250 segons. Com que la segona promesa va ser la primera que es va resoldre o es va rebutjar, va ser retornada pel mètode Promise.race().



Si l'argument passat al mètode Promise.race() és un iterable buit, el mètode retornarà una promesa pendent per sempre:

deixar temp = Promesa. carrera ( [ ] ) ;

consola. registre ( temp ) ;

Si l'argument iterable té valors que no siguin promeses o que ja s'hagin complert o rebutjat, el mètode es conformarà amb el primer valor de la matriu:

deixa p1 = nova promesa ( ( resoldre, rebutjar ) => {
resoldre ( 'P1 s'ha resolt' ) ;
} ) ;

deixa p2 = nova promesa ( ( resoldre, rebutjar ) => {
resoldre ( 'P2 s'ha resolt' ) ;
} ) ;

deixar temp = Promesa. carrera ( [ p1,p2 ] ) ;
temp. aleshores ( valor => consola. registre ( valor ) ) ;

Comprovació del mètode Promise.race() tant per a les promeses resoltes com les rebutjades. Aquest mètode també té una altra alternativa que és el mètode Promise.any() que es pot utilitzar només per comprovar les promeses complides.

Conclusió

El mètode Promise.race() s'utilitza per obtenir la primera promesa que es compleix o es rebutja d'una iterable de promeses. La promesa que es compleix o es rebutja el més aviat possible és el valor de retorn de Promise.race(). L'escriptura va proporcionar una visió detallada del mètode Promise.race().