Maison > interface Web > js tutoriel > Pourquoi les rappels dans les méthodes Promise .then sont-ils un anti-modèle dans AngularJS ?

Pourquoi les rappels dans les méthodes Promise .then sont-ils un anti-modèle dans AngularJS ?

Patricia Arquette
Libérer: 2024-11-16 07:41:03
original
879 Les gens l'ont consulté

Why are Callbacks in Promise .then Methods an Anti-Pattern in AngularJS?

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');
};
Copier après la connexion

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
  });
Copier après la connexion

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 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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal