Maison  >  Article  >  interface Web  >  Pourquoi les rappels avec les méthodes Promise .then sont-ils une mauvaise idée ?

Pourquoi les rappels avec les méthodes Promise .then sont-ils une mauvaise idée ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-16 09:03:02709parcourir

Why are Callbacks with Promise .then Methods a Bad Idea?

Conséquences peu recommandables de l'utilisation des rappels avec des méthodes Promise .then

En recherchant une approche plus optimale pour gérer les opérations asynchrones, les développeurs peuvent tomber sur des suggestions impliquant l'utilisation de fonctions de rappel au sein des services AngularJS. Cependant, de telles pratiques méritent un examen minutieux, car elles peuvent conduire à des résultats indésirables.

Dans l'extrait de code fourni, tokenService utilise un rappel dans sa méthode getTokens pour gérer le résultat d'une requête HTTP. Cette approche présente cependant plusieurs inconvénients :

  • Flux brisé : Elle entrave l'enchaînement transparent des gestionnaires de succès et d'échec.
  • Inversion de contrôle : Il déplace le contrôle du traitement des réponses de l'appelant vers le module appelé, ce qui peut prêter à confusion.
  • Promesses incohérentes : Bien que le code incorpore des promesses, les rappels sont toujours utilisés pour gérer les réponses. , créant une dissonance cognitive.

Refactoring pour une gestion orientée promesses

Pour remédier à ce problème, le code doit être repensé pour adopter pleinement la nature asynchrone des promesses. . Dans la version révisée, la méthode getTokens renvoie simplement une promesse que l'appelant peut ensuite utiliser dans sa propre méthode then :

var getTokens = function() {
  return $http.get('/api/tokens');
};
yourModule.getTokens()
  .then(function(response) {
    // handle it
  });

Avantages de la conception centrée sur la promesse

Cette approche offre de nombreux avantages par rapport à la méthode basée sur le rappel :

  • Flux amélioré : Les opérations peuvent être enchaînées plus efficacement, garantissant un flux d'exécution logique et rationalisé.
  • Clarté : La responsabilité de la gestion des réponses incombe à l'appelant, éliminant ainsi toute ambiguïté.
  • Cohérence : Les promesses sont utilisées de manière cohérente dans toute la base de code, favorisant la compréhension et maintenabilité.

En comprenant les inconvénients de l'utilisation des rappels avec les méthodes promise .then et en adoptant une approche plus orientée promesse, les développeurs peuvent améliorer considérablement leurs pratiques de gestion de code asynchrone. Cela conduit à un code plus clair et plus gérable qui améliore l'expérience du développeur et favorise une base de code plus maintenable et sans bug.

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