Retour au cours

Introduction au JavaScript asynchrone (Le problème)

JavaScript : Le cours complet pour débutant, de « Zéro à Héros »

94. Introduction au JavaScript asynchrone

JavaScript est, par nature, mono-thread (single-threaded). Il exécute le code séquentiellement. Si une tâche prend beaucoup de temps (comme récupérer des données d'un serveur ou attendre un minuteur), le navigateur se fige — c'est ce qu'on appelle le blocage.

Le problème : Opérations bloquantes

Imaginez ce code synchrone :

javascript console.log('Étape 1 : Démarrage'); // Supposons que ceci prenne 5 secondes pour charger les données let data = fetchFromServer(); // BLOQUANT : Le navigateur fige ici console.log('Étape 2 : Données chargées'); console.log('Étape 3 : Terminé');

Si l'étape 2 bloque, l'utilisateur ne peut pas cliquer sur des boutons ou scroller pendant 5 secondes.

La solution : L'asynchronicité

Les opérations asynchrones s'exécutent en arrière-plan (via les Web APIs). Au lieu d'attendre le résultat immédiatement, nous disons à JS : « Lance cette longue tâche, et quand elle sera finie, exécute cette fonction spécifique. » Cela permet au thread principal (la pile d'appels) de rester libre et réactif.

Il existe trois modèles principaux pour gérer le code asynchrone :

  1. Callbacks (Hérité)
  2. Promises (Standard moderne)
  3. Async/Await (Le plus propre, basé sur les Promises)