Comprendre les Promesses en JavaScript

Mar 4, 2025

Chapitre sur les Promesses

Introduction

  • Importance des promesses dans la gestion de l'asynchrone.
  • Problème des callbacks et code peu maintenable.

Qu'est-ce qu'une promesse ?

  • Objet représentant la fin ou l'échec d'une opération asynchrone.
  • Création : const p = new Promise((resolve, reject) => {...})
    • resolve : fonction appelée si la promesse est résolue.
    • reject : fonction appelée si la promesse échoue.

Utilisation des Promesses

  • Exemple d'une promesse résolue immédiatement : resolve(4).
  • Affichage de l'objet promesse dans la console.
  • Affichage d'une promesse rejetée : reject(4).

Méthodes des Promesses

.then()

  • Prend un callback pour gérer le succès.
  • Exemple : p.then(value => console.log(value));

.catch()

  • Gère les erreurs.
  • Exemple : p.catch(error => console.error(error));

Chaînage des Promesses

  • Il est possible de retourner des valeurs dans .then() et chaîner d'autres promesses.
  • Exemple : p.then(value => { return value + 1; }).then(newValue => console.log(newValue));

.finally()

  • Exécuté quoi qu'il arrive, que la promesse soit résolue ou rejetée.
  • Utilisation pour nettoyer des opérations.

Exemples pratiques

  • Utilisation de setTimeout avec des promesses.
  • Création de fonctions wait() et waitAndFail() pour simuler des délais.

Syntaxe Asynchrone

  • Utilisation du mot clé async :
    • Exemple : async function main() {...}.
  • Utilisation de await pour attendre la résolution d'une promesse.

Combinaison des Promesses

Promise.all()

  • Attendre la résolution de toutes les promesses.

Promise.allSettled()

  • Ignore les promesses échouées et retourne leur statut.

Promise.any()

  • Renvoie la première promesse qui réussit.

Promise.race()

  • Renvoie la première promesse qui se termine, qu'elle soit résolue ou rejetée.

Détails importants

  • Les promesses sont exécutées immédiatement lors de leur création.
  • Importance de comprendre le fonctionnement de l'exécution synchrone et asynchrone en JavaScript.
  • Utilisation correcte de async et await pour écrire un code plus lisible.

Conclusion

  • Les promesses facilitent la gestion de l'asynchrone et rendent le code plus lisible.
  • Importance de comprendre les différentes méthodes pour combiner les promesses.
  • Proposition de transformer les fonctions traditionnelles utilisant des callbacks en promesses.