𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁 𝗣𝗿𝗼𝗺𝗶𝘀𝗲𝘀

Une Promise représente le résultat d'une tâche asynchrone.

Vous utilisez les Promises pour les appels d'API, les requêtes de base de données et la lecture de fichiers.

Une Promise possède trois états :

  • Pending : La tâche est toujours en cours.
  • Fulfilled : La tâche s'est terminée avec succès.
  • Rejected : La tâche a échoué avec une erreur.

La structure ressemble à ceci :

const promise = new Promise((resolve, reject) => { // L'exécuteur s'exécute immédiatement });

Vous gérez les résultats avec ces méthodes :

  • .then() : S'exécute lorsque la promise réussit.
  • .catch() : S'exécute lorsque la promise échoue.
  • .finally() : S'exécute lorsque la tâche se termine, quel que soit le résultat.

Règles importantes à retenir :

  • Le premier résultat l'emporte. Si vous appelez resolve() puis reject(), c'est resolve qui l'emporte.
  • La fonction exécuteur s'exécute de manière synchrone.
  • L'utilisation de async et await rend votre code plus facile à lire que l'utilisation de .then().

Gestion de plusieurs promises :

  • Promise.all() : Suit une approche « fail-fast ». Si une promise échoue, tout le groupe échoue.
  • Promise.allSettled() : Attend que chaque promise se termine. Elle renvoie les résultats même si certaines tâches échouent.

Résumé :

  • Promise : Un gestionnaire de résultat asynchrone.
  • resolve : Marque le succès.
  • reject : Marque l'échec.
  • async/await : Une façon plus propre d'écrire des promises.
  • Promise.all : S'arrête à la première erreur.
  • Promise.allSettled : Termine toutes les tâches.

Source : https://dev.to/malik786/javascript-promises-2hn4