Nello script precedente abbiamo iniziato un'analisi della programmazione asincrona in JavaScript utilizzando le Promise. Ora vedremo alcuni metodi utili per gestire più promise nello stesso momento.
Promise.all
Unisce tutte le Promise in una sola contenente un array di risultati delle singole.
const p1 = Promise.resolve("Ciao"); const p2 = new Promise((resolve, reject) => { setTimeout(resolve, 200, 'Mondo'); }); Promise.all([p1, p2]).then((values) => { console.log(values); // ["Ciao", "Mondo"] });
Promise.race
Fornendo un'array di Promise, restituisce una Promise che si risolverà solo con il valore della più veloce.
const p1 = new Promise((resolve, reject) => { setTimeout(resolve, 200, 'Ciao'); }); const p2 = new Promise((resolve, reject) => { setTimeout(resolve, 2000, 'Mondo'); }); Promise.race([p1, p2]).then((value) => { console.log(value); // "Ciao" });
Promise.any
A seguito della fornitura di un array di Promise, restituisce la prima riuscita. Nel caso tutte falliscano anche la promise risultante fallirà.
const p0 = Promise.reject(0); const p1 = new Promise((resolve, reject) => { setTimeout(resolve, 200, 'Ciao'); }); const p2 = new Promise((resolve, reject) => { setTimeout(resolve, 2000, 'Mondo'); }); Promise.race([p0, p1, p2]).then((value) => { console.log(value); // "Ciao" });
Promise.allSettled
Questo metodo è molto simile al metodo all, ma permette l'esecuzione di tutte le Promise, indipendentemente dal fallimento di una o più.
const p0 = Promise.reject("Fallimento"); const p1 = Promise.resolve("Ciao"); const p2 = new Promise((resolve, reject) => { setTimeout(resolve, 200, 'Mondo'); }); Promise.allSettles([p0, p1, p2]).then((values) => { values.forEach((value) => console.log(value) // Object { status: "rejected", reason: "Fallimento" } // Object { status: "fulfilled", value: "Ciao" } // Object { status: "fulfilled", value: "Mondo" } });
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Utilizzare il metodo ExceptBy per eseguire operazione di sottrazione tra liste
Creare una libreria CSS universale: Cards
Ottimizzare le pull con Artifact Cache di Azure Container Registry
Evitare memory leaks nelle closure JavaScript
Gestione dell'annidamento delle regole dei layer in CSS
Recuperare gli audit log in Azure DevOps
Gestione dei nomi con le regole @layer in CSS
Gestire il routing HTTP in Azure Container App
Gestire progetti NPM in .NET Aspire
Utilizzare il metodo IntersectBy per eseguire l'intersection di due liste
Rinnovare il token di una GitHub App durante l'esecuzione di un workflow
Utilizzare DeepSeek R1 con Azure AI
I più letti di oggi
- Usare i settings di serializzazione/deserializzazione di System.Text.Json di ASP.NET all'interno di un'applicazione non web
- .NET Conference Italia 2025 - Milano
- The Agentic Day - Milano
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!