Codice Sincrono e Asincrono in JavaScript
Consideriamo il seguente codice:
console.log('1');
console.log('2');
È ovvio che prima verrà eseguita la prima stampa in console, e poi - la seconda. Cioè i comandi del nostro codice vengono eseguiti uno dopo l'altro - nell'ordine in cui compaiono nel codice. Questo tipo di codice è chiamato sincrono.
Consideriamo ora il seguente codice:
setTimeout(function() {
console.log('1');
}, 3000);
console.log('2');
In questo caso i comandi non vengono eseguiti nell'ordine in cui compaiono nel codice: la prima stampa in console verrà eseguita quando arriva il suo momento, ma il resto del codice non aspetta quel momento, e continua ad essere eseguito. Questo tipo di codice è chiamato asincrono.
Il codice asincrono si presenta in JavaScript abbastanza spesso: quando si lavora con i timer, quando si collegano gli gestori di eventi, durante il caricamento di immagini, quando si lavora con la tecnologia AJAX, che permette di caricare parti di una pagina dal server, quando si lavora con NodeJS, che rappresenta il JavaScript lato server.