na callback è una funzione che viene passata come argomento ad un’altra funzione, e che viene poi invocata (richiamata) all’interno di quella funzione “contenitrice”, spesso al termine di un’operazione asincrona o dopo che un certo compito è stato completato.
In altre parole:
Definisci una funzione A.
Passi A come parametro a un’altra funzione B.
Dentro B, in un momento opportuno, chiami A (la callback).
Questo permette di “dire” a B: “quando hai finito, esegui questo”.
Perché usare le callback
Gestione dell’asincronia: molte operazioni in JS (es. richieste HTTP, operazioni su file, timer) sono asincrone. Le callback permettono di definire il codice da eseguire dopo che l’operazione è conclusa.
Inversione del flusso: consente di inserire del codice “da eseguire dopo” senza bloccare l’esecuzione del programma principale.
Flessibilità: la funzione “contenitore” non ha bisogno di conoscere i dettagli di cosa fare alla fine: riceve una callback generica.
Esempio base
function doSomething(callback) {
console.log(“Doing something…”);
// Simuliamo operazione asincrona con setTimeout
setTimeout(() => {
console.log(“…operation done”);
callback(); // richiamo la callback
}, 1000);
}
function afterDone() {
console.log(“Callback called!”);
}
// uso
doSomething(afterDone);
// Output:
// Doing something…
// …operation done
// Callback called!
In questo esempio, afterDone è la callback che verrà eseguita dopo che doSomething ha “finito” la sua operazione simulata.
Per chi preferisce il formato video:
