cat javascript/promise-una-risposta-che-arrivera-dopo.md
Promise: una risposta che arriverà dopo
Capire l’idea di base di una Promise senza entrare nei dettagli avanzati.
In parole semplici
Una Promise rappresenta un risultato futuro. Può andare bene oppure fallire. All’inizio ti basta capire che non hai subito il valore finale.
Questa lezione fa parte del modulo Dati, attese e richieste web. L’obiettivo del modulo è: Capire come gestire operazioni che non danno una risposta immediata.
Parole nuove
- Promise: promessa di un risultato futuro.
- then: cosa fare quando il risultato arriva.
- catch: cosa fare se qualcosa va storto.
Cosa impari
- Capire il concetto senza partire da definizioni astratte.
- Vedere un esempio piccolo che puoi copiare e modificare.
- Collegare l’argomento al risultato del modulo: una piccola dashboard che mostra dati caricati da una fonte esterna.
Esempio da copiare
const promessa = new Promise((resolve) => {
setTimeout(() => {
resolve("Dati pronti");
}, 1000);
});
promessa.then((messaggio) => {
console.log(messaggio);
});
Non devi memorizzare tutto subito. Prima copia l’esempio, fallo funzionare e cambia una cosa alla volta.
Esercizi
Base · facile
Esegui questo codice, aspetta il messaggio, poi cambia il testo restituito e il tempo di attesa.
const promessa = new Promise((resolve) => {
setTimeout(() => resolve("Dati pronti"), 1000);
});
promessa.then((messaggio) => console.log(messaggio));
Soluzione
Il messaggio appare dopo ~1 secondo perché resolve viene chiamato dentro il setTimeout. Cambiando il testo dentro resolve(...) cambia ciò che riceve then; cambiando 1000 cambia l’attesa.
Intermedio · medio
Aggiungi un .catch e una Promise che a volte fallisce (usa reject("errore") dentro il timer). Prova entrambi i casi e osserva quale ramo viene eseguito.
Sfida · difficile
Spiega cosa rappresentano i tre stati di una Promise (in attesa, risolta, rifiutata) e il ruolo di resolve/reject. Mostra perché console.log dentro .then vede il valore mentre un console.log subito dopo .then no, e collega l’idea ad async/await (lezione successiva).
Controllo finale
Hai finito quando sai dire che una Promise contiene un risultato non ancora disponibile.