Metoda JavaScript Promise.race().

Metoda Javascript Promise Race



Metoda Promise.race() je ugrađena metoda JavaScripta koja uzima iterable obećanja kao argument i vraća prvo obećanje koje je riješeno ili odbijeno. Metoda Promise.race() vratit će ili vrijednost ispunjenja ili razlog odbijanja. Iterabli su objekti kroz koje se može prolaziti kroz petlju, kao što su nizovi, nizovi i karte.

Što su uopće obećanja?

Asinkroni kod može se rješavati s obećanjima. Kao parametar uzimaju funkciju poznatu kao izvršitelj. Kada se stvori obećanje, izvršitelj se automatski pokreće asinkrono i vraća vrijednost u slučaju da je ispunjeno, inače vraća razlog odbijanja:

neka primjer_obećanje = novoObećanje ( ( riješiti, odbaciti ) => {
odlučnost ( 'Obećanje je ispunjeno' ) ;
} ) ;

primjer_obećanja. zatim ( r => konzola. log ( r ) ) ;







Asinkrona priroda obećanja:



neka primjer_obećanje = novoObećanje ( ( riješiti, odbaciti ) => {
odlučnost ( 'Obećanje je ispunjeno' ) ;
} ) ;

primjer_obećanja. zatim ( r => konzola. log ( r ) ) ;
konzola. log ( '1,2,3...' ) ;



Kako koristiti metodu Promise.race()?

Proslijedite iterable obećanja metodi Promise.race() i dohvatite povratnu vrijednost u varijabli:





neka prom1 = novoObećanje ( ( riješiti, odbaciti ) => {
setTimeout ( ( ) => odlučnost ( 'Obećanje je ispunjeno' ) , 500 ) ;
} ) ;

neka prom2 = novoObećanje ( ( riješiti, odbaciti ) => {
setTimeout ( ( ) => odbiti ( 'Obećanje se nije moglo riješiti' ) , 250 ) ;
} ) ;

neka temp = Obećanje. rasa ( [ prom1, prom2 ] ) ;

temp. ulov ( razlog => konzola. log ( razlog ) ) ;

U ovom primjeru imali smo dva obećanja. Prvo obećanje riješeno je nakon 500 ms, a drugo obećanje je odbijeno tek nakon 250 sekundi. Kako je drugo obećanje bilo prvo koje je bilo razriješeno ili odbijeno, vraćeno je metodom Promise.race().



Ako je argument proslijeđen metodi Promise.race() prazan iterable, tada će metoda vratiti vječno obećanje na čekanju:

neka temp = Obećanje. rasa ( [ ] ) ;

konzola. log ( temp ) ;

Ako argument iterable ima bilo kakve vrijednosti koje nisu obećane ili obećanja koja su već ispunjena ili odbijena, tada će se metoda zadovoljiti prvom vrijednošću u nizu:

neka p1 = novoObećanje ( ( riješiti, odbaciti ) => {
odlučnost ( 'P1 je riješen' ) ;
} ) ;

neka p2 = novoObećanje ( ( riješiti, odbaciti ) => {
odlučnost ( 'P2 je riješen' ) ;
} ) ;

neka temp = Obećanje. rasa ( [ p1,p2 ] ) ;
temp. zatim ( vrijednost => konzola. log ( vrijednost ) ) ;

Metoda Promise.race() provjerava ima li riješenih i odbijenih obećanja. Ova metoda također ima drugu alternativu, a to je metoda Promise.any() koja se može koristiti samo za provjeru ispunjenih obećanja.

Zaključak

Metoda Promise.race() koristi se za dobivanje prvog obećanja koje je ili ispunjeno ili odbijeno iz iterable obećanja. Obećanje koje se ispuni ili odbije najranije je povratna vrijednost Promise.race(). Zapis je dao dubinski uvid u metodu Promise.race().