𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁 𝗦𝗶𝗻𝗰𝗿𝗼𝗻𝗼 𝗲 𝗔𝘀𝗶𝗻𝗰𝗿𝗼𝗻𝗼
JavaScript viene eseguito su un singolo thread. Ciò significa che esegue una cosa alla volta. È necessario capire come gestisce i task per scrivere codice efficiente.
JavaScript Sincrono
Il codice sincrono viene eseguito riga per riga. Ogni task attende che il precedente sia terminato. Questo viene chiamato blocking. Se un task richiede molto tempo, l'intero programma si ferma.
- Esecuzione: Sequenza fissa.
- Blocking: Sì.
- Complessità: Semplice.
- Ideale per: Task semplici e sequenziali.
JavaScript Asincrono
Il codice asincrono viene eseguito in modo indipendente. I task non bloccano gli altri pezzi di codice mentre sono in attesa. Questo viene chiamato non-blocking. Il task viene avviato in background e ti notifica quando è terminato.
- Esecuzione: I task vengono eseguiti indipendentemente.
- Blocking: No.
- Complessità: Maggiore.
- Ideale per: Chiamate API, timer e operazioni sui file.
Tre modi per gestire i task asincroni:
- Callbacks: Una funzione che viene eseguita dopo che un task è terminato.
- Promises: Un oggetto che rappresenta il completamento o il fallimento di un'operazione.
- Async/Await: Il metodo più pulito. Fa apparire il codice asincrono come codice sincrono senza bloccare il thread.
Operazioni asincrone comuni:
- Timer:
setTimeout() - Chiamate API:
fetch() - Lettura file:
readFile() - Eventi utente:
addEventListener()
L'Event Loop rende tutto questo possibile. Utilizza la Call Stack, le Web APIs e la Callback Queue per gestire più task contemporaneamente.
Riassunto:
- Sincrono: Uno dopo l'altro. Blocca l'esecuzione.
- Asincrono: Task indipendenti. Non blocca.
- Default di JavaScript: Sincrono.
Fonte: https://www.geeksforgeeks.org/javascript/synchronous-and-asynchronous-in-javascript/ Fonte: https://www.w3schools.com/js/js_asynchronous.asp Fonte: https://medium.com/@mohdtalib.dev/what-is-synchronous-and-asynchronous-in-javascript-07adb7b4cc5f
Post completo: https://dev.to/raja_b_0c9d242e2c26cf063b/javascript-synchronous-and-asynchronous-2a69