JavaScript Promise.race() meetod

Javascript Promise Race Meetod



Meetod Promise.race() on JavaScripti sisseehitatud meetod, mis võtab argumendina korduvaid lubadusi ja tagastab esimese lubaduse, mis on lahendatud või tagasi lükatud. Meetod Promise.race() tagastab kas täitmise väärtuse või tagasilükkamise põhjuse. Itereeritavad objektid on objektid, mille kaudu saab silmuseid kasutada, näiteks massiivid, stringid ja kaardid.

Mis on ikkagi lubadused?

Asünkroonse koodiga saab toime tulla lubadustega. Nad võtavad parameetrina funktsiooni, mida nimetatakse täitjaks. Lubaduse loomisel töötab täitja automaatselt asünkroonselt ja tagastab väärtuse, kui see on täidetud, vastasel juhul tagastab tagasilükkamise põhjuse:

las example_promise = uus lubadus ( ( lahendama, tagasi lükkama ) => {
lahendada ( 'Lubadus on täidetud' ) ;
} ) ;

näide_lubadus. siis ( r => konsool. logi ( r ) ) ;







Lubaduste asünkroonne olemus:



las example_promise = uus lubadus ( ( lahendama, tagasi lükkama ) => {
lahendada ( 'Lubadus on täidetud' ) ;
} ) ;

näide_lubadus. siis ( r => konsool. logi ( r ) ) ;
konsool. logi ( '1,2,3...' ) ;



Kuidas kasutada meetodit Promise.race()?

Edastage lubaduste itereeriv meetod Promise.race() ja hankige selle tagastatav väärtus muutujas:





las prom1 = uus lubadus ( ( lahendama, tagasi lükkama ) => {
setTimeout ( ( ) => lahendada ( 'Lubadus on täidetud' ) , 500 ) ;
} ) ;

las prom2 = uus lubadus ( ( lahendama, tagasi lükkama ) => {
setTimeout ( ( ) => tagasi lükata ( 'Lubadust ei saanud täita' ) , 250 ) ;
} ) ;

lase temp = Lubadus. rassi ( [ prom1, prom2 ] ) ;

temp. püüda ( põhjus => konsool. logi ( põhjus ) ) ;

Selles näites oli meil kaks lubadust. Esimene lubadus lahendati 500 ms pärast ja teine ​​lubadus lükati tagasi 250 sekundi pärast. Kuna teine ​​lubadus oli esimene, mis lahendati või lükati tagasi, tagastati see meetodiga Promise.race().



Kui meetodile Promise.race() antud argument on tühi itereeritav, tagastab meetod igavesti ootel oleva lubaduse:

lase temp = Lubadus. rassi ( [ ] ) ;

konsool. logi ( temp ) ;

Kui itereeritavas argumendis on mittelubavaid väärtusi või lubadusi, mis on juba täidetud või tagasi lükatud, siis lahendab meetod massiivi esimese väärtuse:

las p1 = uus lubadus ( ( lahendama, tagasi lükkama ) => {
lahendada ( 'P1 on lahendatud' ) ;
} ) ;

las p2 = uus lubadus ( ( lahendama, tagasi lükkama ) => {
lahendada ( 'P2 on lahendatud' ) ;
} ) ;

lase temp = Lubadus. rassi ( [ p1, p2 ] ) ;
temp. siis ( väärtus => konsool. logi ( väärtus ) ) ;

Promise.race() meetod kontrollib nii lahendatud kui ka tagasilükatud lubadusi. Sellel meetodil on ka teine ​​​​alternatiiv, milleks on meetod Promise.any(), mida saab kasutada lubaduste täitmise kontrollimiseks.

Järeldus

Meetodit Promise.race() kasutatakse lubaduste itereeritavast esimese kas täidetud või tagasilükatud lubaduse saamiseks. Lubadus, mis täidetakse või lükatakse tagasi kõige varem, on Promise.race() tagastatav väärtus. Kirjeldus andis põhjaliku ülevaate meetodist Promise.race().