JavaScript Academy · Lezione

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.

Lezione 3 di 38 passaggi

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
Promise.all / any / race / allSettled — scegli lo strumento giusto — illustrazione 1

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);
});
Promise.all / any / race / allSettled — scegli lo strumento giusto — illustrazione 2

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);
});
Promise.all / any / race / allSettled — scegli lo strumento giusto — illustrazione 3

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);
});
Promise.all / any / race / allSettled — scegli lo strumento giusto — illustrazione 4

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; }));
});
Promise.all / any / race / allSettled — scegli lo strumento giusto — illustrazione 5

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.
Promise.all / any / race / allSettled — scegli lo strumento giusto — illustrazione 6

Quiz sulla scelta del combinatore

Controllo rapido: primo risultato fulfilled.

Promise.all / any / race / allSettled — scegli lo strumento giusto — illustrazione 7

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.

Promise.all / any / race / allSettled — scegli lo strumento giusto — illustrazione 8
Gratis per iniziare

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

  1. Event loop e basi di task e microtask
  2. Promise — stati, concatenamento, gestione degli errori
  3. Promise.all / any / race / allSettled — scegli lo strumento giusto
← Torna a JavaScript Academy