JavaScript Promise.race() módszer

Javascript Promise Race Modszer



A Promise.race() metódus a JavaScript beépített metódusa, amely egy iterálható ígéretet vesz argumentumként, és visszaadja az első ígéretet, amelyet feloldanak vagy elutasítanak. A Promise.race() metódus vagy a teljesítési értéket, vagy az elutasítás okát adja vissza. Az iterálható objektumok olyan objektumok, amelyeken keresztül lehet hurkolni, például tömbök, karakterláncok és térképek.

Egyáltalán mik azok az ígéretek?

Az aszinkron kódot ígéretekkel lehet kezelni. Paraméterként egy végrehajtóként ismert függvényt vesznek fel. Az ígéret létrehozásakor a végrehajtó automatikusan aszinkron módon fut, és egy értéket ad vissza, ha az teljesül, ellenkező esetben az elutasítás okát adja vissza:

legyen example_promise = newPromise ( ( megoldani, elutasítani ) => {
elhatározás ( 'Az ígéret teljesítve' ) ;
} ) ;

példa_ígéret. akkor ( r => konzol. log ( r ) ) ;







Az ígéretek aszinkron jellege:



legyen example_promise = newPromise ( ( megoldani, elutasítani ) => {
elhatározás ( 'Az ígéret teljesítve' ) ;
} ) ;

példa_ígéret. akkor ( r => konzol. log ( r ) ) ;
konzol. log ( '1,2,3...' ) ;



Hogyan kell használni a Promise.race() módszert?

Adjon át egy iterált ígéretet a Promise.race() metódusnak, és kapja meg a visszatérési értékét a változóban:





legyen prom1 = newPromise ( ( megoldani, elutasítani ) => {
setTimeout ( ( ) => elhatározás ( 'Az ígéret teljesítve' ) , 500 ) ;
} ) ;

legyen prom2 = newPromise ( ( megoldani, elutasítani ) => {
setTimeout ( ( ) => elutasít ( 'Az ígéretet nem lehetett teljesíteni' ) , 250 ) ;
} ) ;

hagyja hőm = Ígéret. verseny ( [ prom1, prom2 ] ) ;

hőm. fogás ( ok => konzol. log ( ok ) ) ;

Ebben a példában két ígéretünk volt. Az első ígéretet 500 ms után teljesítették, a másodikat pedig 250 másodperc múlva utasították el. Mivel a második ígéret volt az első, amelyet feloldottak vagy elutasítottak, a Promise.race() metódus adta vissza.



Ha a Promise.race() metódusnak átadott argumentum üres iterálható, akkor a metódus örökké függőben lévő ígéretet ad vissza:

hagyja hőm = Ígéret. verseny ( [ ] ) ;

konzol. log ( hőm ) ;

Ha az iterálható argumentumnak van nem ígéretes értéke vagy olyan ígéret, amelyet már teljesítettek vagy elutasítottak, akkor a metódus a tömb első értékére számol:

legyen p1 = newPromise ( ( megoldani, elutasítani ) => {
elhatározás ( 'P1 megoldva' ) ;
} ) ;

legyen p2 = newPromise ( ( megoldani, elutasítani ) => {
elhatározás ( 'P2 megoldva' ) ;
} ) ;

hagyja hőm = Ígéret. verseny ( [ p1, p2 ] ) ;
hőm. akkor ( érték => konzol. log ( érték ) ) ;

Promise.race() metódus ellenőrzi mind a megoldott, mind az elutasított ígéreteket. Ennek a metódusnak van egy másik alternatívája is, a Promise.any() metódus, amellyel egyszerűen ellenőrizhetjük az ígéretek teljesítését.

Következtetés

A Promise.race() metódust arra használjuk, hogy megkapjuk az első ígéretet, amelyet teljesítenek vagy elutasítanak az ígéretek iterálhatóságából. A legkorábban teljesített vagy elutasított ígéret a Promise.race() visszatérési értéke. Az írás mélyreható betekintést nyújtott a Promise.race() metódusba.