Metodo JavaScript Promise.race()

Metodo Javascript Promise Race



Il metodo Promise.race() è un metodo integrato di JavaScript che accetta un iterabile di promesse come argomento e restituisce la prima promessa che viene risolta o rifiutata. Il metodo Promise.race() restituirà il valore di adempimento o il motivo del rifiuto. Gli iterabili sono oggetti che possono essere ripetuti come array, stringhe e mappe.

Che cosa sono le Promesse comunque?

Il codice asincrono può essere gestito con promesse. Prendono una funzione nota come executor come parametro. Quando viene creata una promessa, l'esecutore viene eseguito automaticamente in modo asincrono e restituisce un valore nel caso in cui venga soddisfatto, altrimenti restituisce il motivo del rifiuto:

lascia esempio_promessa = nuova promessa ( ( risolvere, rifiutare ) => {
risolvere ( 'La promessa è stata risolta' ) ;
} ) ;

esempio_promessa. poi ( r => consolle. tronco d'albero ( r ) ) ;







Natura asincrona delle promesse:



lascia esempio_promessa = nuova promessa ( ( risolvere, rifiutare ) => {
risolvere ( 'La promessa è stata risolta' ) ;
} ) ;

esempio_promessa. poi ( r => consolle. tronco d'albero ( r ) ) ;
consolle. tronco d'albero ( '1,2,3...' ) ;



Come utilizzare il metodo Promise.race()?

Passa un iterabile di promesse al metodo Promise.race() e ottieni il suo valore restituito nella variabile:





lascia prom1 = nuova promessa ( ( risolvere, rifiutare ) => {
setTimeout ( ( ) => risolvere ( 'La promessa è stata risolta' ) , 500 ) ;
} ) ;

lascia prom2 = nuova promessa ( ( risolvere, rifiutare ) => {
setTimeout ( ( ) => rifiutare ( 'La promessa non può essere risolta' ) , 250 ) ;
} ) ;

lascia temp = Promettere. gara ( [ ballo1, ballo2 ] ) ;

temp. presa ( Motivo => consolle. tronco d'albero ( Motivo ) ) ;

In questo esempio avevamo due promesse. La prima promessa è stata risolta dopo 500 ms e la seconda promessa è stata rifiutata subito dopo 250 secondi. Poiché la seconda promessa è stata la prima ad essere risolta o rifiutata, è stata restituita dal metodo Promise.race().



Se l'argomento passato al metodo Promise.race() è un iterabile vuoto, il metodo restituirà una promessa sempre in sospeso:

lascia temp = Promettere. gara ( [ ] ) ;

consolle. tronco d'albero ( temp ) ;

Se l'argomento iterable ha valori non promessi o promesse che sono già state soddisfatte o rifiutate, il metodo si accontenterà del primo valore nell'array:

lascia p1 = nuova promessa ( ( risolvere, rifiutare ) => {
risolvere ( 'P1 è stato risolto' ) ;
} ) ;

lascia p2 = nuova promessa ( ( risolvere, rifiutare ) => {
risolvere ( 'P2 è stato risolto' ) ;
} ) ;

lascia temp = Promettere. gara ( [ p1, p2 ] ) ;
temp. poi ( valore => consolle. tronco d'albero ( valore ) ) ;

Controllo del metodo Promise.race() per le promesse risolte e rifiutate. Questo metodo ha anche un'altra alternativa che è il metodo Promise.any() che può essere utilizzato solo per verificare le promesse mantenute.

Conclusione

Il metodo Promise.race() viene utilizzato per ottenere la prima promessa che viene soddisfatta o rifiutata da un iterabile di promesse. La promessa che viene soddisfatta o rifiutata per prima è il valore di ritorno di Promise.race(). L'articolo ha fornito informazioni approfondite sul metodo Promise.race().