Pourquoi les rappels de Promise. Alors les méthodes sont un anti-modèle
Question :
Est-ce un anti-modèle fournir des fonctions de rappel aux services AngularJS dans les méthodes promise .then ? Si oui, comment le code doit-il être refactorisé et pourquoi ?
Réponse :
Refactoriser le code :
Modifiez la méthode getTokens dans tokenService pour renvoyer la promesse directement au lieu d'accepter un rappel :
var getTokens = function() {
return $http.get('/api/tokens');
};
Dans le contrôleur, utilisez la méthode .then pour enchaîner les gestionnaires de réussite/échec :
yourModule.getTokens()
.then(function(response) {
// handle it
});
Pourquoi la méthode originale était un anti-modèle :
-
Empêche le chaînage ultérieur des gestionnaires de promesses. Le code d'origine empêche le chaînage de méthodes .then supplémentaires pour traitement ultérieur de la réponse.
-
Inverse le contrôle. En acceptant un rappel, le contrôle du traitement de la réponse est déplacé du module appelant vers le module appelé, ce qui n'est pas idéal.
-
Utilisation inutile des promesses. Tandis que le service $http renvoie des promesses, le code d'origine les reconvertit en rappels, rendant l'utilisation des promesses redondante.
-
Potentiel de confusion. L'utilisation de promesses comme rappels introduit un concept inutile dans la base de code et peut être difficile à comprendre pour les membres de l'équipe.
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!
Déclaration: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