"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Éviter explicitement l'enfer des rappels

Éviter explicitement l'enfer des rappels

Publié le 2024-09-17
Parcourir:717

La programmation asynchrone est l'un des atouts majeurs de JavaScript, notamment dans Node.js ; cependant, en raison de la nécessaire séparation des préoccupations, plusieurs opérations asynchrones sont souvent effectuées via des rappels, ce qui peut conduire à ce que l'on appelle « l'enfer des rappels ». Par exemple, considérons une situation dans laquelle nous travaillons avec des rappels imbriqués dans notre code JavaScript, et voyons comment nous pouvons le refactoriser à l'aide de Promises et de la structure async/await.

L'enfer des rappels : un exemple

Commençons par du code qui utilise des rappels pour gérer les opérations sur les fichiers pour un système de gestion de produit simple :

Explicitly Avoiding Callback Hell

Ici, nous avons plusieurs rappels bien imbriqués à partir desquels lire et écrire dans un fichier. C'est probablement l'un des cas que vous écririez lorsque vous êtes au plus profond de l'enfer des rappels. Enfin, avec un plus grand nombre d'opérations asynchrones, le code augmentera, tout comme le nombre d'indentations, ce qui le rendra plus difficile à lire. Dans la méthode save(), la fonction fs.readFile lit le fichier, puis son rappel analyse le contenu et utilise une fonction fs.writeFile pour réécrire le contenu du fichier, ce qui est effectué dans un autre rappel. De tels niveaux d’imbrication font ressembler le code à ce que l’on appelle une « pyramide du malheur ».

Passer aux promesses et à Async/Await

Afin d'éviter cet enfer de rappel, il existe des promesses JavaScript et la syntaxe async/wait qui rendent le code beaucoup plus lisible, gérable et convivial pour le débogage.
Voici la version améliorée :

Explicitly Avoiding Callback Hell

Pourquoi Promesses et Async/Await ?

Les promesses sont utiles en permettant la gestion des opérations asynchrones de manière linéaire et avec le moins de structures imbriquées. Le modèle async/wait améliore la lisibilité du code et aborde également les opérations asynchrones d'une manière plus proche des opérations synchrones. En utilisant spécifiquement des blocs try and catch, le traitement des erreurs devient plus transparent et plus facile à comprendre, ce qui contribue à la maintenabilité du code.

Conclusion

L'enfer des rappels peut être le véritable problème lors de l'écriture du code de manière propre en JavaScript, en particulier dans Node.js. Avec l'aide de Promises et async/await, il est possible de transformer l'enfer des rappels fortement imbriqués en code linéaire propre, ce qui facilite en même temps la gestion des erreurs. Cela transforme non seulement votre code pour qu'il soit bien meilleur, mais vous met également sur la bonne voie pour devenir un meilleur programmeur JavaScript.

Déclaration de sortie Cet article est reproduit sur : https://dev.to/syriamme/explicitly-avoiding-callback-hell-h95?1 En cas d'infraction, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3