codelynx.dev
🇫🇷🇬🇧

Retour 12/05/2025

Les promesses en JavaScript - Maîtrisez l'asynchronisme avec élégance

Écris par Melvyn Malherbe le 12/05/2025


Les promesses en JavaScript : Maîtrisez l'asynchronisme avec élégance

Dans le monde du développement web, gérer des opérations asynchrones peut rapidement devenir un casse-tête. Heureusement, JavaScript nous offre un outil puissant pour simplifier cette tâche : les promesses. Dans cet article, nous allons explorer en profondeur les promesses en JavaScript, comprendre leur fonctionnement, et découvrir comment elles peuvent transformer votre code asynchrone en une structure plus lisible et maintenable.

Qu'est-ce qu'une promesse en JavaScript ?

Une promesse est un objet qui représente la valeur future d'une opération asynchrone. Elle permet de gérer le succès ou l'échec de cette opération de manière structurée, évitant ainsi les fameux "callback hell" qui rendent le code difficile à lire et à maintenir.

Les trois états d'une promesse

Une promesse peut être dans l'un des trois états suivants :

  • En attente (pending) : L'état initial, où la promesse n'est ni remplie ni rejetée.
  • Remplie (fulfilled) : L'opération a réussi, et la promesse est résolue avec une valeur.
  • Rejetée (rejected) : L'opération a échoué, et la promesse est résolue avec une erreur.

Une fois résolue, une promesse ne peut plus changer d'état.

Comment créer une promesse ?

Créer une promesse en JavaScript est simple grâce au constructeur Promise. Voici un exemple :

JAVASCRIPT
const maPromesse = new Promise((resolve, reject) => {
  // Code asynchrone ici
  if (/* opération réussie */) {
    resolve(valeur);
  } else {
    reject(erreur);
  }
});

Dans cet exemple, resolve est appelé si l'opération réussit, tandis que reject est utilisé en cas d'échec.

Consommer une promesse

Une fois la promesse créée, vous pouvez gérer son résultat avec les méthodes .then(), .catch(), et .finally() :

JAVASCRIPT
maPromesse
  .then((valeur) => {
    // Traitement en cas de succès
  })
  .catch((erreur) => {
    // Traitement en cas d'échec
  })
  .finally(() => {
    // Code exécuté après la résolution
  });
  • .then() : Gère le succès et peut aussi gérer l'échec.
  • .catch() : Gère uniquement l'échec.
  • .finally() : Exécute du code après la résolution, quel que soit le résultat.

Chaînage de promesses

Les promesses peuvent être chaînées pour exécuter des opérations asynchrones séquentiellement :

JAVASCRIPT
maPromesse
  .then((valeur) => {
    return nouvellePromesse;
  })
  .then((nouvelleValeur) => {
    // Traitement avec la nouvelle valeur
  })
  .catch((erreur) => {
    // Gestion des erreurs
  });

Chaque .then() retourne une nouvelle promesse, permettant un chaînage fluide et lisible.

Méthodes statiques des promesses

JavaScript propose plusieurs méthodes statiques pour travailler avec des ensembles de promesses :

  • Promise.all(iterable) : Résolue quand toutes les promesses sont remplies ou rejetée dès qu'une échoue.
  • Promise.allSettled(iterable) : Résolue quand toutes les promesses sont résolues, fournissant un tableau des résultats.
  • Promise.any(iterable) : Résolue dès qu'une promesse est remplie, ou rejetée si toutes échouent.
  • Promise.race(iterable) : Résolue ou rejetée dès que la première promesse est résolue.

Ces méthodes facilitent la gestion de plusieurs opérations asynchrones simultanées.

Gestion des erreurs

La gestion des erreurs est cruciale avec les promesses. Utilisez .catch() pour intercepter et gérer les erreurs :

JAVASCRIPT
maPromesse
  .then((valeur) => {
    // Traitement en cas de succès
  })
  .catch((erreur) => {
    console.error('Une erreur est survenue :', erreur);
  });

Cela améliore la robustesse de votre code en évitant les erreurs non gérées.

Conclusion

Les promesses en JavaScript sont un outil essentiel pour gérer l'asynchronisme de manière claire et efficace. Elles simplifient le code, évitent les callbacks imbriqués, et rendent votre code plus maintenable. Pour aller plus loin, explorez notre formation JavaScript et découvrez comment intégrer les promesses dans vos projets.

Pour approfondir vos connaissances, consultez nos articles sur comment utiliser le localStorage avec Next.js et le guide complet de Prisma avec NextJS. Vous pouvez également explorer les meilleures formations JavaScript gratuites pour enrichir vos compétences.

N'attendez plus pour maîtriser les promesses et transformer votre approche du développement asynchrone en JavaScript !

NextReact

Cours NextJS gratuit

Accède à des exercices, des vidéos et bien plus sur NextJS dans la formation "NextReact" 👇