Promise.all()

Questa traduzione è incompleta. Collabora alla traduzione di questo articolo dall’originale in lingua inglese.

Il metodo Promise.all(iterable) restituisce un promise che viene risolto quando tutte i promise nell'iterable passato come parametro vengono risolti, o scatena una reject contenente la ragione del primo promise che viene rigettato.

Sintassi

Promise.all(iterable);

Parameteri

iterable
Un oggetto iterabile, come un Array. See iterable.

Valore di ritorno

Un Promise viene risolto quando tutte i promise nell'iterable passato come parametro vengono risolti, o scatena una reject contenente la ragione del primo promise che viene rigettato

Descrizione

Il metodo Promise.all ritorna un array di valori ritornati dai promise nell oggetto iterable che ha ricevuto. L'array dei valori ritornati mantiene lo stesso ordine dell'oggetto iterable originario e non l'ordine di risoluzione dei promise. Se uno dei valori dell'oggetto iterabile passato come parametro non un promise viene automaticamente convertito con Promise.resolve

Se uno qualsiasi dei promise passati viene rigettato, il metodo all Promise viene rigettato automaticamente con il valore del promise rigettato, scartando tutti i promise indipendentemente dal fatto che i promise siano stati risolti o meno. Se viene passato un un array vuoto, allora questo metodo ritorna immediatamente.

Esempi

Usare Promise.all

Il metodo Promise.all aspetta la risoluzione di tutti i promise  (oil primo che viene rigettato).

var p1 = Promise.resolve(3);
var p2 = 1337;
var p3 = new Promise((resolve, reject) => {
  setTimeout(resolve, 100, "foo");
}); 

Promise.all([p1, p2, p3]).then(values => { 
  console.log(values); // [3, 1337, "foo"] 
});

Promise.all comportamento fail-fast

Il metodo Promise.all viene rigettato se uno degli elementi viene rigettato e Promise.all viene rigettato immediatamente: in caso di quattro promise vhe vengono risolti dopo un  timeout, e uno viene rigettato immediatamente allora Promise.all viene rigettao immediamente.

var p1 = new Promise((resolve, reject) => { 
  setTimeout(resolve, 1000, "one"); 
}); 
var p2 = new Promise((resolve, reject) => { 
  setTimeout(resolve, 2000, "two"); 
});
var p3 = new Promise((resolve, reject) => {
  setTimeout(resolve, 3000, "three");
});
var p4 = new Promise((resolve, reject) => {
  setTimeout(resolve, 4000, "four");
});
var p5 = new Promise((resolve, reject) => {
  reject("reject");
});

Promise.all([p1, p2, p3, p4, p5]).then(value => { 
  console.log(value);
}, reason => {
  console.log(reason)
});

//From console:
//"reject"

Specifiche

Specifiche Status Commenti
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Promise.all' in that specification.
Standard Definizione iniziale nello standard ECMA.
ECMAScript 2017 Draft (ECMA-262)
The definition of 'Promise.all' in that specification.
Draft  

Compatibilitá dei browser

Feature Chrome Edge Firefox Internet Explorer Opera Safari Servo
Basic Support32.0(Yes)29.0No support197.1No support
Feature Android Chrome for Android Edge Mobile Firefox for Android IE Mobile Opera Mobile Safari Mobile
Basic Support4.4.432.0(Yes)29No support(Yes)8.0

Vedi anche

Tag del documento e collaboratori

 Hanno collaborato alla realizzazione di questa pagina: pinturic
 Ultima modifica di: pinturic,