Metoda JavaScript Promise.race().

Metoda Javascript Promise Race



Metoda Promise.race() je vestavěná metoda JavaScriptu, která jako argument bere opakovatelnost slibů a vrací první slib, který je vyřešen nebo odmítnut. Metoda Promise.race() buď vrátí hodnotu plnění, nebo důvod zamítnutí. Iterovatelné jsou objekty, které lze procházet smyčkou, jako jsou pole, řetězce a mapy.

Co jsou to vůbec Sliby?

Asynchronní kód lze řešit sliby. Jako parametr berou funkci známou jako exekutor. Když je příslib vytvořen, exekutor automaticky běží asynchronně a vrací hodnotu v případě, že je splněn, jinak vrací důvod odmítnutí:

nechť příklad_slíbí = nový slib ( ( vyřešit, odmítnout ) => {
odhodlání ( 'Slib byl vyřešen' ) ;
} ) ;

example_promise. pak ( r => řídicí panel. log ( r ) ) ;







Asynchronní povaha slibů:



nechť příklad_slíbí = nový slib ( ( vyřešit, odmítnout ) => {
odhodlání ( 'Slib byl vyřešen' ) ;
} ) ;

example_promise. pak ( r => řídicí panel. log ( r ) ) ;
řídicí panel. log ( '1,2,3...' ) ;



Jak používat metodu Promise.race()?

Předejte iterovateli slibů metodě Promise.race() a získejte její návratovou hodnotu v proměnné:





ať prom1 = nový slib ( ( vyřešit, odmítnout ) => {
setTimeout ( ( ) => odhodlání ( 'Slib byl vyřešen' ) , 500 ) ;
} ) ;

ať prom2 = nový slib ( ( vyřešit, odmítnout ) => {
setTimeout ( ( ) => odmítnout ( 'Slib se nepodařilo vyřešit' ) , 250 ) ;
} ) ;

nechat tepl = Slib. závod ( [ prom1, prom2 ] ) ;

tepl. úlovek ( důvod => řídicí panel. log ( důvod ) ) ;

V tomto příkladu jsme měli dva sliby. První příslib byl vyřešen po 500 ms a druhý příslib byl zamítnut těsně po 250 sekundách. Protože druhý příslib byl prvním, který byl buď vyřešen, nebo odmítnut, byl vrácen metodou Promise.race().



Pokud je argument předaný do metody Promise.race() prázdný iterovatelný, pak metoda vrátí navždy čekající slib:

nechat tepl = Slib. závod ( [ ] ) ;

řídicí panel. log ( tepl ) ;

Pokud má argument iterable nějaké neslíbené hodnoty nebo sliby, které již byly splněny nebo odmítnuty, pak se metoda spokojí s první hodnotou v poli:

nech p1 = nový slib ( ( vyřešit, odmítnout ) => {
odhodlání ( 'P1 bylo vyřešeno' ) ;
} ) ;

nechej p2 = nový slib ( ( vyřešit, odmítnout ) => {
odhodlání ( 'P2 bylo vyřešeno' ) ;
} ) ;

nechat tepl = Slib. závod ( [ p1,p2 ] ) ;
tepl. pak ( hodnota => řídicí panel. log ( hodnota ) ) ;

Metoda Promise.race() kontroluje vyřešené i odmítnuté sliby. Tato metoda má také další alternativu, kterou je metoda Promise.any(), kterou lze použít pouze ke kontrole splněných slibů.

Závěr

Metoda Promise.race() se používá k získání prvního slibu, který je splněn nebo odmítnut z iterovatelného slibu. Slib, který je splněn nebo odmítnut jako nejdříve, je návratová hodnota Promise.race(). Zápis poskytl hloubkový náhled do metody Promise.race().