La communauté des développeurs web — front, back, DevOps, mobile et design. Rejoignez la discussion. Rejoindre
WeberForums
Front-end

JavaScript asynchrone : promises et async/await

18 juin 2026 · Front-end
JavaScript asynchrone : promises et async/await

« Pourquoi mon résultat est undefined ? » Neuf fois sur dix, la réponse tient dans un mot : l’asynchrone. Comprendre comment JavaScript gère le temps et les opérations différées est le passage obligé pour tout développeur front ou Node. Décortiquons.

Pourquoi JavaScript est asynchrone

JavaScript est mono-thread : il ne fait qu’une chose à la fois. Si une requête réseau bloquait l’exécution, la page se figerait. La solution : les opérations longues (réseau, fichiers, minuteurs) sont déléguées, et le code continue. Quand le résultat arrive, une fonction est rappelée. C’est le principe de l’asynchrone : ne pas attendre les bras croisés.

Des callbacks aux promesses

Historiquement, on passait une fonction de rappel (callback) à exécuter « plus tard ». Empilées, elles produisaient le tristement célèbre callback hell — des pyramides de code illisibles. Les promesses (Promises) ont apporté l’ordre : un objet qui représente un résultat futur, avec .then() pour le succès et .catch() pour l’erreur. On chaîne les opérations proprement, à plat.

async / await : la lisibilité

La syntaxe async/await, bâtie sur les promesses, est aujourd’hui la référence. Elle permet d’écrire du code asynchrone qui se lit comme du code synchrone :

  • async devant une fonction indique qu’elle renvoie une promesse.
  • await met en pause la fonction jusqu’à ce que la promesse se résolve — sans bloquer le reste du programme.
  • La gestion d’erreur se fait avec un simple try / catch, familier et clair.

Le piège classique

Oublier le await (ou le .then()) : on manipule alors la promesse elle-même, pas sa valeur — d’où le fameux undefined ou [object Promise]. Autre réflexe utile : Promise.all() pour lancer plusieurs opérations en parallèle plutôt qu’une par une.

A lire également :  CSS moderne : Flexbox, Grid et container queries

À retenir

JavaScript ne bloque pas : il délègue et rappelle. Les promesses ont structuré l’asynchrone, async/await l’a rendu lisible. Maîtrisez await, gérez les erreurs avec try/catch, et parallélisez avec Promise.all. Une fois ce modèle mental acquis, la moitié des bugs mystérieux de JavaScript disparaissent.

à lire aussi

Dans la même rubrique