JavaScript Promise.race()-Methode

Javascript Promise Race Methode



Die Methode Promise.race() ist eine integrierte Methode von JavaScript, die eine iterierbare Versprechung als Argument verwendet und die erste Versprechung zurückgibt, die aufgelöst oder abgelehnt wird. Die Methode Promise.race() gibt entweder den Erfüllungswert oder den Ablehnungsgrund zurück. Iterables sind Objekte, die durchlaufen werden können, wie Arrays, Strings und Maps.

Was sind Promises überhaupt?

Asynchroner Code kann mit Versprechungen behandelt werden. Sie nehmen eine als Executor bekannte Funktion als Parameter. Wenn ein Promise erstellt wird, wird der Executor automatisch asynchron ausgeführt und gibt einen Wert zurück, falls er erfüllt ist, ansonsten gibt er den Grund für die Ablehnung zurück:

let example_promise = neuVersprechen ( ( lösen, ablehnen ) => {
beschließen ( 'Versprechen wurde gelöst' ) ;
} ) ;

Beispiel_Versprechen. dann ( r => Konsole. Protokoll ( r ) ) ;







Asynchronität von Promises:



let example_promise = neuVersprechen ( ( lösen, ablehnen ) => {
beschließen ( 'Versprechen wurde gelöst' ) ;
} ) ;

Beispiel_Versprechen. dann ( r => Konsole. Protokoll ( r ) ) ;
Konsole. Protokoll ( '1,2,3...' ) ;



Wie verwendet man die Methode Promise.race()?

Übergeben Sie eine Iterable von Promises an die Methode Promise.race() und erhalten Sie ihren Rückgabewert in einer Variablen:





lassen Sie Abschlussball1 = neuVersprechen ( ( lösen, ablehnen ) => {
setTimeout ( ( ) => beschließen ( 'Versprechen wurde gelöst' ) , 500 ) ;
} ) ;

lassen Sie Abschlussball2 = neuVersprechen ( ( lösen, ablehnen ) => {
setTimeout ( ( ) => ablehnen ( 'Versprechen konnte nicht aufgelöst werden' ) , 250 ) ;
} ) ;

lassen temp = Versprechen. Rennen ( [ Abschlussball1, Abschlussball2 ] ) ;

Temp. Fang ( Grund => Konsole. Protokoll ( Grund ) ) ;

In diesem Beispiel hatten wir zwei Versprechen. Das erste Versprechen wurde nach 500 ms aufgelöst und das zweite Versprechen wurde direkt nach 250 Sekunden abgelehnt. Da das zweite Promise das erste war, das entweder aufgelöst oder abgelehnt wurde, wurde es von der Methode Promise.race() zurückgegeben.



Wenn das an die Methode Promise.race() übergebene Argument ein leeres Iterable ist, gibt die Methode ein für immer ausstehendes Versprechen zurück:

lassen temp = Versprechen. Rennen ( [ ] ) ;

Konsole. Protokoll ( Temp ) ;

Wenn das Argument iterable irgendwelche Nicht-Promise-Werte oder Versprechungen hat, die bereits erfüllt oder abgelehnt wurden, wird die Methode mit dem ersten Wert im Array abrechnen:

lass p1 = neuVersprechen ( ( lösen, ablehnen ) => {
beschließen ( 'P1 wurde gelöst' ) ;
} ) ;

lass p2 = neuVersprechen ( ( lösen, ablehnen ) => {
beschließen ( 'P2 wurde gelöst' ) ;
} ) ;

lassen temp = Versprechen. Rennen ( [ p1, p2 ] ) ;
Temp. dann ( Wert => Konsole. Protokoll ( Wert ) ) ;

Prüfung der Promise.race()-Methode auf gelöste und abgelehnte Promises. Diese Methode hat auch eine andere Alternative, nämlich die Methode Promise.any(), die verwendet werden kann, um nur nach den erfüllten Versprechen zu suchen.

Fazit

Die Methode Promise.race() wird verwendet, um das erste Versprechen zu erhalten, das entweder erfüllt oder aus einer iterierbaren Versprechung abgelehnt wird. Das Promise, das am frühesten erfüllt oder abgelehnt wird, ist der Rückgabewert von Promise.race(). Der Artikel lieferte einen tiefen Einblick in die Promise.race()-Methode.