𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁 𝗦𝘆𝗻𝗰𝗵𝗿𝗼𝗻𝗼𝘂𝘀 𝗮𝗻𝗱 𝗔𝘀𝘆𝗻𝗰𝗵𝗿𝗼𝗻𝗼𝘂𝘀 -> JavaScript Synchrone et Asynchrone
JavaScript s'exécute sur un seul thread. Cela signifie qu'il exécute une seule chose à la fois. Vous devez comprendre comment il gère les tâches pour écrire un code efficace.
JavaScript Synchrone
Le code synchrone s'exécute ligne par ligne. Chaque tâche attend que la précédente soit terminée. C'est ce qu'on appelle le blocage (blocking). Si une tâche prend beaucoup de temps, tout le programme s'arrête.
- Exécution : Séquence fixe.
- Blocage : Oui.
- Complexité : Simple.
- Idéal pour : Les tâches simples et séquentielles.
JavaScript Asynchrone
Le code asynchrone s'exécute de manière indépendante. Les tâches ne bloquent pas le reste du code pendant qu'elles attendent. C'est ce qu'on appelle le non-blocage (non-blocking). La tâche démarre en arrière-plan et vous avertit lorsqu'elle est terminée.
- Exécution : Les tâches s'exécutent indépendamment.
- Blocage : Non.
- Complexité : Plus élevée.
- Idéal pour : Les appels API, les minuteurs et les opérations sur les fichiers.
Trois façons de gérer les tâches asynchrones :
- Callbacks : Une fonction qui s'exécute après la fin d'une tâche.
- Promises : Un objet qui représente l'achèvement ou l'échec d'une opération.
- Async/Await : La méthode la plus propre. Elle permet au code asynchrone de ressembler à du code synchrone sans bloquer le thread.
Opérations asynchrones courantes :
- Timers :
setTimeout() - Appels API :
fetch() - Lecture de fichiers :
readFile() - Événements utilisateur :
addEventListener()
L'Event Loop permet cela. Il utilise la Call Stack, les Web APIs et une Callback Queue pour gérer plusieurs tâches à la fois.
Résumé :
- Synchrone : L'un après l'autre. Bloque l'exécution.
- Asynchrone : Tâches indépendantes. Ne bloque pas.
- Par défaut en JavaScript : Synchrone.
Source: https://www.geeksforgeeks.org/javascript/synchronous-and-asynchronous-in-javascript/ Source: https://www.w3schools.com/js/js_asynchronous.asp Source: https://medium.com/@mohdtalib.dev/what-is-synchronous-and-asynchronous-in-javascript-07adb7b4cc5f
Full post: https://dev.to/raja_b_0c9d242e2c26cf063b/javascript-synchronous-and-asynchronous-2a69