Metoda JavaScript Promise.race().

Metoda Javascript Promise Race



Metoda Promise.race() je vgrajena metoda JavaScripta, ki kot argument sprejme iterable obljub in vrne prvo obljubo, ki je razrešena ali zavrnjena. Metoda Promise.race() bo vrnila vrednost izpolnitve ali razlog za zavrnitev. Iterables so predmeti, skozi katere je mogoče krožiti, kot so polja, nizi in zemljevidi.

Kaj sploh so obljube?

Asinhrono kodo je mogoče obravnavati z obljubami. Kot parameter vzamejo funkcijo, znano kot izvajalec. Ko je obljuba ustvarjena, se izvajalec samodejno zažene asinhrono in vrne vrednost, če je izpolnjena, sicer vrne razlog za zavrnitev:

naj example_promise = nova obljuba ( ( razrešiti, zavrniti ) => {
rešiti ( 'Obljuba je bila rešena' ) ;
} ) ;

primer_obljube. potem ( r => konzola. dnevnik ( r ) ) ;







Asinhrona narava obljub:



naj example_promise = nova obljuba ( ( razrešiti, zavrniti ) => {
rešiti ( 'Obljuba je bila rešena' ) ;
} ) ;

primer_obljube. potem ( r => konzola. dnevnik ( r ) ) ;
konzola. dnevnik ( '1,2,3 ...' ) ;



Kako uporabljati metodo Promise.race()?

Posredujte iterabilo obljub metodi Promise.race() in pridobite njeno vrnjeno vrednost v spremenljivki:





naj prom1 = nova obljuba ( ( razrešiti, zavrniti ) => {
setTimeout ( ( ) => rešiti ( 'Obljuba je bila rešena' ) , 500 ) ;
} ) ;

naj maturantski ples2 = nova obljuba ( ( razrešiti, zavrniti ) => {
setTimeout ( ( ) => zavrniti ( 'Obljube ni bilo mogoče razrešiti' ) , 250 ) ;
} ) ;

pustite temp = Obljuba. dirka ( [ maturantski ples1, maturantski ples2 ] ) ;

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

V tem primeru smo imeli dve obljubi. Prva obljuba je bila razrešena po 500 ms, druga obljuba pa je bila zavrnjena šele po 250 sekundah. Ker je bila druga obljuba prva razrešena ali zavrnjena, jo je vrnila metoda Promise.race().



Če je argument, posredovan metodi Promise.race(), prazen iterable, bo metoda vrnila večno čakajočo obljubo:

pustite temp = Obljuba. dirka ( [ ] ) ;

konzola. dnevnik ( temp ) ;

Če ima argument iterable kakršne koli neobljubljene vrednosti ali obljube, ki so že bile izpolnjene ali zavrnjene, se bo metoda zadovoljila s prvo vrednostjo v matriki:

naj p1 = nova obljuba ( ( razrešiti, zavrniti ) => {
rešiti ( 'P1 je rešen' ) ;
} ) ;

naj p2 = nova obljuba ( ( razrešiti, zavrniti ) => {
rešiti ( 'P2 je razrešen' ) ;
} ) ;

pustite temp = Obljuba. dirka ( [ p1,p2 ] ) ;
temp. potem ( vrednost => konzola. dnevnik ( vrednost ) ) ;

Metoda Promise.race() preveri za razrešene in zavrnjene obljube. Ta metoda ima tudi drugo alternativo, to je metoda Promise.any(), ki jo lahko uporabite samo za preverjanje izpolnjenih obljub.

Zaključek

Metoda Promise.race() se uporablja za pridobitev prve obljube, ki je izpolnjena ali zavrnjena iz iterable obljub. Obljuba, ki je izpolnjena ali zavrnjena prej, je vrnjena vrednost Promise.race(). Zapis je zagotovil poglobljen vpogled v metodo Promise.race().