首页  >  文章  >  web前端  >  为什么在 Promise `.then` 方法中使用回调是反模式?

为什么在 Promise `.then` 方法中使用回调是反模式?

Barbara Streisand
Barbara Streisand原创
2024-11-14 14:40:02661浏览

Why is Using Callbacks in Promise `.then` Methods an Anti-Pattern?

在 Promise .then 方法中使用回调:反模式

向 AngularJS 服务提供回调函数的实践,如您提供的代码片段可能看起来很方便,但它遵循反模式。这种方法破坏了 Promises 的异步编程流程和控制反转。

为什么它是反模式?

  • 中断链: Promise .then 方法允许您链接多个异步操作。通过使用回调,您将失去在后续操作中轻松继续处理一个操作的结果的能力。
  • 控制反转: 原始代码通过传递从消费者模块到提供者模块的回调。这使得管理和调试执行流程变得更加困难。
  • 不必要的 Promise 复杂性: Promise 提供了一种处理异步操作的机制。通过将 Promise 包装在回调中,您会引入不必要的复杂性并混淆代码的意图。

重构解决方案:

重构代码并消除这些问题,您可以使用不带回调函数的普通 .then 方法:

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

在消费者模块中,您可以直接使用 .then 来链式操作:

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

重构代码的好处:

  • 维护链接:通过从 getTokens 函数返回 Promise,您可以轻松链接后续操作。
  • 保留控制:消费者模块不依赖回调来控制异步操作​​的执行。
  • 简化代码:重构的代码简化了异步处理过程,使其更容易理解并维护。

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

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