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.
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 :
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 ».
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 :
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.
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!