Sobes.tech
Middle

Comment fonctionne Promise en JavaScript?

sobes.tech IA

Réponse de l'IA

  • Objet représentant une éventuelle fin (ou échec) d'une opération asynchrone et sa valeur résultante.
  • États d'une promesse :
    • pending : état initial, ni rempli ni rejeté.
    • fulfilled : indique que l'opération a réussi.
    • rejected : indique que l'opération a échoué.
  • La transition de pending à fulfilled ou rejected se produit une seule fois et de manière irréversible.
  • Méthodes :
    • .then(onFulfilled, onRejected) : prend deux fonctions de rappel. La première (onFulfilled) est appelée en cas de succès, la seconde (onRejected) en cas d'erreur. Les deux arguments sont optionnels. Retourne une nouvelle promesse.
    • .catch(onRejected) : version abrégée de .then(null, onRejected). Utilisée pour gérer les erreurs. Retourne une nouvelle promesse.
    • .finally(onFinally) : appelé indépendamment du résultat de la promesse (succès ou erreur). Utile pour libérer des ressources. Retourne une nouvelle promesse.
  • Création d'une promesse :
new Promise((resolve, reject) => {
  // Opération asynchrone
  const success = true;
  if (success) {
    resolve("Opération réussie!"); // Passage à l'état fulfilled
  } else {
    reject("Quelque chose a mal tourné..."); // Passage à l'état rejected
  }
});
  • Chaînage de promesses : .then(), .catch(), .finally() retournent des promesses, permettant de créer des chaînes pour exécuter des opérations asynchrones en séquence.
fetch(url)
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error('Erreur:', error));