L’asincronia in JavaScript è un meccanismo che permette alle operazioni di essere non bloccanti. Detto in modo semplice, il linguaggio può eseguire altre operazioni mentre non ha ancora finito di lavorare su un’operazione precedente.
JavaScript è un linguaggio single-thread, quindi può eseguire un solo comando alla volta. Pertanto, se si sta aspettando la fine di un’attività che richiede molto tempo (come la lettura di un file o la richiesta di dati dal web), tutte le altre attività devono aspettare.
Per evitare questo problema, JavaScript utilizza callback, promesse, async/await per gestire le operazioni asincrone. Questi meccanismi fanno sì che JavaScript possa iniziare un’operazione, passare ad un’altra, e poi ritornare alla prima operazione quando i risultati sono pronti. Questo permette di avere un flusso di lavoro fluido e non bloccante.