Promesses en JavaScript | Expliqué

Promesses en JavaScript | Expliqué
JavaScript est un langage de programmation de haut niveau où le code est exécuté ligne par ligne, ce qui signifie que la ligne de code suivante n'est exécutée qu'une fois que la ligne de code précédente est complètement exécutée. Pour résoudre ce problème, JavaScript propose des fonctions de rappel qui sont asynchrones équivalentes à une fonction.

Le code asynchrone est exécuté immédiatement et contrairement au code synchrone, il n'attend pas que la ligne de code précédente termine l'exécution. Cependant, lorsque nous avons affaire à plusieurs opérations asynchrones, l'utilisation de rappels n'est pas un bon choix car le code devient déroutant, ingérable et difficile à comprendre ou à déboguer. Par conséquent, la solution consiste à utiliser des promesses.

Dans cet article, nous passerons par le concept de promesses en JavaScript ainsi que des exemples.

Quelles sont les promesses?

Une promesse est une opération ou une tâche qui sera achevée à l'avenir. La syntaxe de promesse est donnée ci-dessous:

Syntaxe de promesse:

Laissez myPromise = nouvelle promesse (fonction (résoudre, rejeter)
// code
);

Comme nous pouvons le voir dans la syntaxe de promesse donnée ci-dessus, le constructeur de promesses ne prend que la fonction de rappel comme un argument. Dans la fonction de rappel, nous avons les arguments de résolution et de rejet où la résolution est appelée lorsque les opérations effectuées à l'intérieur de la fonction de rappel réussissent. Cependant, si l'opération est infructueuse, appelez rejeter.

Pour le dire simplement, laissez-nous supposer que votre anniversaire arrive et que votre mère vous promet de vous procurer un nouvel ordinateur portable. Vous n'avez pas reçu l'ordinateur portable et vous ne pouvez pas être vraiment sûr de savoir si vous obtiendrez l'ordinateur portable ou non avant votre anniversaire. Votre mère pourrait vous acheter un ordinateur portable ou elle peut changer d'avis et vous acheter autre chose. C'est une promesse en langue profane.

Chaque promesse a trois États ou possibilités:

  • En attente: Vous ne savez pas si vous obtiendrez l'ordinateur portable ou non; indéfini.
  • Réalivé: Votre mère vous achète l'ordinateur portable; valeur du résultat.
  • Rejeté: Votre mère ne vous achète pas d'ordinateur portable; objet d'erreur.

Avantages des promesses

  • Les opérations asynchrones sont traitées de manière plus simple
  • La lisibilité du code est améliorée, donc le débogage devient facile
  • La gestion des erreurs est plus facile que les événements ou les rappels.
  • Le flux de contrôle est mieux défini par le code asynchrone.

Avant d'aller aux exemples de promesses, passons par un autre concept dans les promesses qui sont prometteuses consommateurs dont la fonction consiste à consommer des promesses en enregistrant les fonctions en utilisant:

  • .puis (): Lorsqu'une promesse est résolue ou rejetée, cette méthode est appelée.
  • .Catch (): Lorsqu'une promesse est rejetée ou qu'une erreur se produit pendant l'exécution de la promesse, cette méthode est appelée.

Exemple:

Dans cet exemple, nous vérifierons si deux nombres sont égaux ou non en utilisant des promesses, et en fonction de la réussite ou non de cette opération, nous afficherons la sortie.

// promet d'initialiser
// promet d'initialiser
varmypromise = newPromise (fonction (résoudre, rejeter)
consommer num1 = 4;
consommer num2 = 4;
// Comparez deux nombres
if (num1 === num2)
// lorsque l'opération réussit
résoudre();
autre
// lorsque l'erreur vient
rejeter();

);
// promet aux consommateurs
ma promesse.
alors (fonction ()
console.log ("opération réussie");
).
catch (function ()
console.log («erreur s'est produit»);
);
  • Nous avons initialisé la promesse avec le nom MyPromise et avons fourni une fonction de rappel.
  • Dans la fonction, nous avons créé les deux nombres que nous voulons comparer
  • Nous avons utilisé l'instruction IF-Else pour voir si les nombres sont égaux ou non
  • Et puis nous avons inclus la promesse des consommateurs
  • Si l'opération de promesse réussit, alors .Ensuite, le consommateur sera invoqué et la console affichera l'opération réussie
  • Si une promesse n'est pas réussie, vous verrez un message qui dit «l'erreur s'est produite» sur la console

Depuis que l'opération a réussi, nous voyons Opération réussie Dans le journal de la console.

Laissez maintenant modifier les nombres initialisés dans la fonction de rappel pour voir si la fonction de capture détecte une erreur ou non.

// promet d'initialiser
varmypromise = newPromise (fonction (résoudre, rejeter)
consommer num1 = 5;
consommer num2 = 4;
// Comparez deux nombres
if (num1 === num2)
// lorsque l'opération réussit
résoudre();
autre
// lorsque l'erreur vient
rejeter();

);
// promet aux consommateurs
ma promesse.
alors (fonction ()
console.log ("opération réussie");
).
catch (function ()
console.log («erreur s'est produit»);
);

Étant donné que les nombres ne sont pas égaux maintenant, la fonction rejette () sera invoquée et l'erreur sera mise en cache par la fonction de capture:

Conclusion

Une promesse est une opération terminée à l'avenir et aide les développeurs à implémenter le code asynchrone. Les promesses sont préférées aux fonctions de rappel car les promesses sont beaucoup plus propres, donc l'amélioration de la lisibilité, et le débogage du code, il a une meilleure gestion des erreurs ainsi que plusieurs opérations asynchrones sont mieux gérées avec des promesses. Une promesse peut être tenue, rejetée ou elle est en attente.

Dans cet article, nous avons suivi des promesses en JavaScript et expliqué les promesses à l'aide d'un exemple.