Est-ce que .then(function(a){ return a; }) est un No-Op pour les promesses ?
Dans le domaine des promesses , la question de savoir si .then(function(a){ return a; }) est une non-opération s'est posée. Faisons la lumière sur cette curieuse requête :
Oui, il s'agit généralement d'une non-opération.
Le code en question reçoit la valeur de retour de la promesse précédente dans le chaîne via la fonction passée à .then(). Cependant, si cette fonction renvoie simplement l'entrée a, elle contourne effectivement tout traitement ou transformation du résultat de la promesse. Cela en fait une étape supplémentaire inoffensive mais inutile dans le processus de promesse.
Pourquoi a-t-il été écrit de cette façon ?
Il s'agit probablement d'une faute de frappe ou d'une relique d'idées fausses antérieures sur des promesses. Lorsque les promesses ont été introduites, certains développeurs pensaient à tort que .then() devait renvoyer une promesse pour continuer la chaîne. En conséquence, ils ont ajouté cet appel .then() superflu pour garantir que la valeur renvoyée restait toujours une promesse, même si elle était identique à l'entrée.
Différence entre Returning .then() et L'omettre
Bien que sémantiquement équivalent, il existe des différences subtiles entre renvoyer .then() et omettre it:
Edge Cases
Dans de rares situations, .then(function(a){ return a; }) peut avoir des comportements inhabituels :
Conclusion
En général, .then(function(a){ return a; }) est un non -op qui n'ajoute aucune valeur à une chaîne de promesses. Il doit être omis sauf s'il existe une raison impérieuse de l'utiliser, comme éviter les promesses partagées ou gérer des comportements obscurs liés à Thenable.
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