JavaScript Promise.race() metode

Javascript Promise Race Metode



Promise.race() metode ir iebūvēta JavaScript metode, kas kā argumentu izmanto solījumu atkārtojumu un atgriež pirmo solījumu, kas ir atrisināts vai noraidīts. Metode Promise.race() atgriezīs izpildes vērtību vai noraidīšanas iemeslu. Iterables ir objekti, kurus var izmantot, piemēram, masīvi, virknes un kartes.

Kas vispār ir solījumi?

Asinhrono kodu var apstrādāt ar solījumiem. Viņi kā parametru izmanto funkciju, kas pazīstama kā izpildītājs. Kad tiek izveidots solījums, izpildītājs automātiski darbojas asinhroni un atgriež vērtību gadījumā, ja tas tiek izpildīts, pretējā gadījumā tas atgriež noraidījuma iemeslu:

ļaujiet example_promise = jaunsApsolījums ( ( atrisināt, noraidīt ) => {
atrisināt ( 'Solījums ir izpildīts' ) ;
} ) ;

example_promise. tad ( r => konsole. žurnāls ( r ) ) ;







Solījumu asinhronais raksturs:



ļaujiet example_promise = jaunsApsolījums ( ( atrisināt, noraidīt ) => {
atrisināt ( 'Solījums ir izpildīts' ) ;
} ) ;

example_promise. tad ( r => konsole. žurnāls ( r ) ) ;
konsole. žurnāls ( '1,2,3...' ) ;



Kā izmantot Promise.race() metodi?

Nododiet solījumu atkārtojumu metodei Promise.race() un iegūstiet tās atgriešanās vērtību mainīgajā:





let prom1 = jaunsApsolījums ( ( atrisināt, noraidīt ) => {
setTimeout ( ( ) => atrisināt ( 'Solījums ir izpildīts' ) , 500 ) ;
} ) ;

let prom2 = jaunsApsolījums ( ( atrisināt, noraidīt ) => {
setTimeout ( ( ) => noraidīt ( 'Solījumu nevarēja izpildīt' ) , 250 ) ;
} ) ;

ļauj temp = Apsolīt. rase ( [ prom1, prom2 ] ) ;

temp. noķert ( iemesls => konsole. žurnāls ( iemesls ) ) ;

Šajā piemērā mums bija divi solījumi. Pirmais solījums tika izpildīts pēc 500 ms, bet otrais solījums tika noraidīts tikai pēc 250 sekundēm. Tā kā otrais solījums bija pirmais, kas tika atrisināts vai noraidīts, tas tika atgriezts ar Promise.race() metodi.



Ja metodei Promise.race() nodotais arguments ir tukšs iterējams, metode atgriezīs mūžīgi neapstiprinātu solījumu:

ļauj temp = Apsolīt. rase ( [ ] ) ;

konsole. žurnāls ( temp ) ;

Ja argumentu atkārtojumā ir vērtības, kas nav solītas, vai solījumi, kas jau ir izpildīti vai noraidīti, tad metode apmierinās pirmo vērtību masīvā:

ļaujiet p1 = jaunsApsolījums ( ( atrisināt, noraidīt ) => {
atrisināt ( 'P1 ir atrisināts' ) ;
} ) ;

ļaujiet p2 = jaunsApsolījums ( ( atrisināt, noraidīt ) => {
atrisināt ( 'P2 ir atrisināts' ) ;
} ) ;

ļauj temp = Apsolīt. rase ( [ p1, p2 ] ) ;
temp. tad ( vērtību => konsole. žurnāls ( vērtību ) ) ;

Promise.race() metodes pārbaude gan atrisinātajiem, gan noraidītajiem solījumiem. Šai metodei ir arī cita alternatīva, proti, Promise.any() metode, ko var izmantot, lai pārbaudītu, vai solījumi ir izpildīti.

Secinājums

Promise.race() metode tiek izmantota, lai iegūtu pirmo solījumu, kas tiek izpildīts vai noraidīts no solījumu atkārtojuma. Solījums, kas tiek izpildīts vai noraidīts agrāk, ir Promise.race() atgriešanas vērtība. Raksts sniedza padziļinātu ieskatu Promise.race() metodē.