Promise.all / any / race / allSettled — scegli lo strumento giusto
Fai pratica con i combinatori delle Promise: all, any, race, allSettled. Impari come si comportano in caso di successo o errore e quando usare ciascuno.
Promise.all / any / race / allSettled — scegli lo strumento giusto è una lezione JavaScript Academy gratuita su CoddyKit. Questa è la lezione 3 di 3. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento JavaScript Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso JavaScript Academy include 3 lezioni in totale.
Panoramica dei combinatori
Obiettivo: Imparare quattro helper e il loro comportamento.
- all: attende tutti; fallisce rapidamente
- any: prima riuscita
- race: primo stato definito (successo/errore)
- allSettled: risultati di tutti

Fondamenti di Promise.all
Promise.all si risolve con un array di risultati; un solo rifiuto fa rifiutare l'intera Promise.
// Small helpers for examples
function delay(ms, value, shouldFail = false) {
return new Promise(function (resolve, reject) {
setTimeout(function () {
if (shouldFail) reject(new Error(String(value)));
else resolve(value);
}, ms);
});
}
// Promise.all waits for all; rejects fast on first error
Promise.all([
delay(10, "A"),
delay(5, "B")
]).then(function (vals) {
console.log("all:", vals);
});

Fondamenti di Promise.any
Promise.any si risolve con il primo successo; si rifiuta solo se tutti gli input si rifiutano.
// Promise.any gives the first fulfilled value
Promise.any([
delay(8, "ok-1"),
delay(3, "ok-2"),
delay(6, "ok-3")
]).then(function (v) {
console.log("any:", v);
}).catch(function (e) {
console.log("any failed:", e.message);
});

Fondamenti di Promise.race
Promise.race sceglie quello il cui stato si definisce per primo: può essere una risoluzione o un rifiuto.
// Promise.race settles with the first to finish (success or error)
Promise.race([
delay(5, "win"),
delay(7, "boom", true)
]).then(function (v) {
console.log("race resolved:", v);
}).catch(function (e) {
console.log("race rejected:", e.message);
});

Fondamenti di Promise.allSettled
Promise.allSettled si risolve sempre con un array di oggetti di stato per ogni input.
// Promise.allSettled waits for all and reports each outcome
Promise.allSettled([
delay(4, "A"),
delay(6, "X", true)
]).then(function (results) {
console.log("allSettled:", results.map(function (r) { return r.status; }));
});

Quale utilizzare?
Scelta:
- all: servono tutti i risultati; fallisce rapidamente al primo errore.
- any: accetta la prima riuscita (fonti di fallback).
- race: sceglie il primo a terminare (schemi con timeout).
- allSettled: raccoglie ogni esito per poterlo analizzare.

Quiz sulla scelta del combinatore
Controllo rapido: primo risultato fulfilled.

Riepilogo
Riepilogo: Utilizzi all quando «servono tutti», any per «la prima riuscita», race per «il primo stato definito» e allSettled per analizzare ogni esito senza interrompere l'elaborazione al primo risultato.

Impara JavaScript con un tutor IA — gratis
Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.
- Corsi
- 59
- Lezioni
- 200
Domande Frequenti
La lezione «Promise.all / any / race / allSettled — scegli lo strumento giusto» è gratuita?
Sì — il testo completo di «Promise.all / any / race / allSettled — scegli lo strumento giusto» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso JavaScript Academy, passa a CoddyKit PRO. Il corso JavaScript Academy include 3 lezioni in totale.
Cosa imparerò in «Promise.all / any / race / allSettled — scegli lo strumento giusto»?
Fai pratica con i combinatori delle Promise: all, any, race, allSettled. Impari come si comportano in caso di successo o errore e quando usare ciascuno. Eserciti JavaScript Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare JavaScript Academy?
Non è richiesta alcuna esperienza precedente. JavaScript Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 3.
Quanto tempo richiede la lezione «Promise.all / any / race / allSettled — scegli lo strumento giusto»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione JavaScript Academy?
Sì. Ogni lezione JavaScript Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Event loop e basi di task e microtask
- Promise — stati, concatenamento, gestione degli errori
- Promise.all / any / race / allSettled — scegli lo strumento giusto