Maison > interface Web > js tutoriel > le corps du texte

Éviter explicitement l'enfer des rappels

PHPz
Libérer: 2024-08-29 11:37:02
original
970 Les gens l'ont consulté

La programmation asynchrone est l'une des forces majeures 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 à Promises et Async/Await

Afin d'éviter cet enfer de rappel, il existe des promesses JavaScript et la syntaxe async/await 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.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal