--- title: Promise.all() slug: Web/JavaScript/Reference/Global_Objects/Promise/all translation_of: Web/JavaScript/Reference/Global_Objects/Promise/all ---
Il metodo Promise.all(iterable)
restituisce una singola promise che viene risolta quando tutte le promise nell'iterable passate come parametro vengono risolte. Scatena una reject contenente la ragione della prima promise che viene respinta.
Promise.all(iterable);
Un {{jsxref("Promise")}} che viene risolto quando tutti i promise nell'iterable passato come parametro vengono risolti, o scatena una reject contenente la ragione del primo promise che viene rigettato
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 {{jsxref("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 gli altri siano stati risolti o meno. Se viene passato un un array vuoto, allora questo metodo ritorna immediatamente.
Promise.all
Il metodo Promise.all
aspetta la risoluzione di tutti i promise (od il 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-fastIl metodo Promise.all
viene rigettato se uno degli elementi viene rigettato e Promise.all
viene rigettato immediatamente. In caso quattro promise vengono risolti dopo un timeout, e uno viene rigettato immediatamente: allora Promise.all
viene rigettato 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 | Status | Commenti |
---|---|---|
{{SpecName('ES6', '#sec-promise.all', 'Promise.all')}} | {{Spec2('ES6')}} | Definizione iniziale nello standard ECMA. |
{{SpecName('ESDraft', '#sec-promise.all', 'Promise.all')}} | {{Spec2('ESDraft')}} |
To contribute to this compatibility data, please write a pull request against this file: https://github.com/mdn/browser-compat-data/blob/master/javascript/promise.json.
{{Compat}}