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
862 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!

source:php.cn
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