JavaScript Promise.race() Metoda

Javascript Promise Race Metoda



Metoda Promise.race() jest wbudowaną metodą JavaScript, która jako argument przyjmuje iterację obietnic i zwraca pierwszą obietnicę, która została rozwiązana lub odrzucona. Metoda Promise.race() zwróci wartość spełnienia lub przyczynę odrzucenia. Iterable to obiekty, przez które można zapętlić, takie jak tablice, ciągi znaków i mapy.

Czym właściwie są obietnice?

Kod asynchroniczny można obsługiwać z obietnicami. Jako parametr przyjmują funkcję znaną jako executor. Kiedy obietnica jest tworzona, executor automatycznie działa asynchronicznie i zwraca wartość w przypadku jej spełnienia, w przeciwnym razie zwraca powód odrzucenia:

niech example_promise = nowa obietnica ( ( rozwiązać, odrzucić ) => {
rozstrzygać ( 'Obietnica została rozwiązana' ) ;
} ) ;

przykład_obietnica. następnie ( r => konsola. dziennik ( r ) ) ;







Asynchroniczny charakter obietnic:



niech example_promise = nowa obietnica ( ( rozwiązać, odrzucić ) => {
rozstrzygać ( 'Obietnica została rozwiązana' ) ;
} ) ;

przykład_obietnica. następnie ( r => konsola. dziennik ( r ) ) ;
konsola. dziennik ( '1,2,3...' ) ;



Jak używać metody Promise.race()?

Przekaż iterację obietnic do metody Promise.race() i zwróć jej wartość w zmiennej:





niech bal1 = nowa obietnica ( ( rozwiązać, odrzucić ) => {
setTimeout ( ( ) => rozstrzygać ( 'Obietnica została rozwiązana' ) , 500 ) ;
} ) ;

niech bal 2 = nowa obietnica ( ( rozwiązać, odrzucić ) => {
setTimeout ( ( ) => odrzucić ( 'Obietnica nie mogła zostać rozwiązana' ) , 250 ) ;
} ) ;

niech temp = Obietnica. Wyścig ( [ studniówka1, studniówka2 ] ) ;

temp. złapać ( powód => konsola. dziennik ( powód ) ) ;

W tym przykładzie mieliśmy dwie obietnice. Pierwsza obietnica została rozwiązana po 500 ms, a druga obietnica została odrzucona po 250 sekundach. Ponieważ druga obietnica była pierwszą, która została rozwiązana lub odrzucona, została zwrócona przez metodę Promise.race().



Jeśli argument przekazany do metody Promise.race() jest pustą iteracją, metoda zwróci wiecznie oczekującą obietnicę:

niech temp = Obietnica. Wyścig ( [ ] ) ;

konsola. dziennik ( temp ) ;

Jeśli argument iterable ma jakiekolwiek wartości nieobietnicze lub obietnice, które zostały już spełnione lub odrzucone, metoda zadowoli się pierwszą wartością w tablicy:

niech p1 = nowa obietnica ( ( rozwiązać, odrzucić ) => {
rozstrzygać ( 'P1 został rozwiązany' ) ;
} ) ;

niech p2 = nowa obietnica ( ( rozwiązać, odrzucić ) => {
rozstrzygać ( 'P2 został rozwiązany' ) ;
} ) ;

niech temp = Obietnica. Wyścig ( [ p1,p2 ] ) ;
temp. następnie ( wartość => konsola. dziennik ( wartość ) ) ;

Metoda Promise.race() sprawdza zarówno rozwiązane, jak i odrzucone obietnice. Ta metoda ma również inną alternatywę, którą jest metoda Promise.any(), której można użyć do sprawdzenia, czy obietnice zostały spełnione.

Wniosek

Metoda Promise.race() służy do pobrania pierwszej obietnicy, która jest spełniona lub odrzucona z iteracji obietnic. Obietnica, która zostanie spełniona lub odrzucona najwcześniej, jest wartością zwracaną przez Promise.race(). W opisie uzyskano dogłębny wgląd w metodę Promise.race().