首页 >web前端 >js教程 >为什么 Promise .then 方法中的回调是 AngularJS 中的反模式?

为什么 Promise .then 方法中的回调是 AngularJS 中的反模式?

Patricia Arquette
Patricia Arquette原创
2024-11-16 07:41:03832浏览

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

为什么 Promise .then 方法的回调是一种反模式

问题:

它是一种反模式吗在promise.then方法中为AngularJS服务提供回调函数?如果是这样,应该如何重构代码?为什么?

答案:

重构代码:

更改 tokenService 中的 getTokens 方法以直接返回 Promise,而不是接受回调:

var getTokens = function() {
  return $http.get('/api/tokens');
};

在控制器中,使用 .then 方法链接成功/失败处理程序:

yourModule.getTokens()
  .then(function(response) {
    // handle it
  });

为什么原始方式是反模式:

  • 防止进一步的承诺链handlers。 原始代码阻止链接额外的 .then 方法来进一步处理响应。
  • 反转控制。 通过接受回调,处理响应的控制权从调用者模块到被调用者模块,这并不理想。
  • 不必要地使用 Promise。当 $http 服务返回 Promise 时,原始代码将它们转换回回调,从而使 Promise 的使用变得多余。
  • 潜在的混乱。使用 Promise 作为回调引入了一个不必要的概念。代码库,团队成员可能很难理解。

以上是为什么 Promise .then 方法中的回调是 AngularJS 中的反模式?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn