当前位置: 首页 > 知识库问答 >
问题:

为什么不推荐使用AngularJS$http成功/错误方法?从v1.6中删除?

焦同
2023-03-14

AngularJS文档中有一个关于$httpsuccesserror方法的弃用通知。是否有从库中删除此抽象的特定原因?

共有2个答案

昌博易
2023-03-14

javascript使用与promise相关的模式只有。然后(成功回调,错误回调),所以他们的目标可能是使用js模式。

郭博涉
2023-03-14

问题是.success.error方法不可链接,因为它们忽略返回值。这给熟悉链接的人带来了问题,也鼓励了不熟悉链接的人编写糟糕的代码。见证StackOverflow上所有使用延迟反模式的示例。

引用AngularJS团队的一句话:

IMO。成功。错误首先是一个糟糕的API设计。这个问题强调了一些开发人员感到困惑的情况,因为他们要么期望.成功.错误以与.然后相同的方式工作,要么反之亦然。在一个完美的世界里,我宁愿抛弃这些$超文本传输协议特定的“promise”。相反,我们可以鼓励开发人员使用标准的$qpromiseAPI。然后。捕获。与处理响应对象相比,使用显式参数的IMO几乎没有什么好处。

-AngularJS问题#10508$http.success/.error的工作方式不同。

$超文本传输协议遗留promise方法成功错误已被弃用。改用标准的然后方法。如果$nicpProvider.useLegacyPromiseExta设置为false,那么这些方法将抛出$超文本传输协议/遗留错误。

-AngularJS$超文本传输协议服务API参考-弃用通知

已从AngularJS 1.6中删除了已弃用的.成功.错误方法。

由于b54a39,$超文本传输协议的不建议使用的自定义回调方法-。成功()。错误()-已被删除。您可以使用标准的.然后()/. cat()promise方法,但请注意,方法签名和返回值是不同的。

$http(...)
  .then(function onSuccess(response) {
    // Handle success
    var data = response.data;
    var status = response.status;
    var statusText = response.statusText;
    var headers = response.headers;
    var config = response.config;
    ...
  }).catch(function onError(response) {
    // Handle error
    var data = response.data;
    var status = response.status;
    var statusText = response.statusText;
    var headers = response.headers;
    var config = response.config;
    ...
  });

AngularJS开发者指南-迁移到v1.6-超文本传输协议

 类似资料:
  • 问题内容: AngularJS文档对 和方法都有弃用声明。从库中删除此抽象是否有特定原因? 问题答案: 问题在于,和方法 不可链接, 因为它们 忽略返回值 。这给熟悉 链的 人带来了问题,并鼓励了不熟悉 链的人编写不好的代码。 引用AngularJS团队之一: IMO 和API最初是API设计的劣势。此问题突出表明,在许多情况下,开发人员会感到困惑,因为他们期望并以相同的方式工作,反之亦然。在一个

  • 问题内容: (此问题不同于您为什么要实现finalize()?此问题与从Java平台弃用有关,另一个问题与在应用程序中是否应使用此机制有关。) 为什么在Java 9中不推荐使用该方法? 是的,它可能以错误的方式使用(例如,从垃圾收集中保存对象(虽然仅一次)或尝试关闭其中的某些本机资源(总比不完全关闭要好))以及许多其他方法可能会被错误地使用。 那么,是真的如此危险或绝对没有用,有必要将其逐出Jav

  • 问题内容: 根据API文档,伪指令的属性已弃用,因此将来,所有伪指令的行为都将使用当前默认值。 这消除了开发人员替换element指令的element的能力,而没有明显替代此功能的能力。 有关如何使用元素指令和不使用元素指令的示例,请参见此示例。 为什么不推荐使用此有用的属性而不进行替换? 问题答案: 在下一个主要的Angular版本中,将删除用于定义替换其所在元素的指令的标志。此功能具有难以理解

  • 问题内容: 众所周知,Java 中的接口已损坏。造成这种情况的原因很多,我将不再赘述。其他人已经做到了。这也是Java架构师本身的立场。 因此,我的问题是:为什么还不被弃用?如果核心Java团队已确定它已损坏,那么他们还必须考虑过时。他们反对这样做的原因是什么(在Java 8中仍不建议弃用)? 问题答案: 有一个错误在1997年提交给Java的错误数据库有关添加方法,所以将不再是无用的。它以“无法

  • 问题内容: 我曾经在hibernate 3中使用getHibernateTemplate(),现在我转向了Hibernate 4,在这里我找不到以下类: 在这里我已经阅读过有关它的更多信息,不建议使用 http://forum.springsource.org/showthread.php?117227-Missing-Hibernate- Classes-Interfaces-in-spring

  • 问题内容: 我正在将hibernate项目配置为使用第二级缓存提供程序,以便可以利用查询缓存。 我向ehcache添加了一个依赖项: 我认为我要使用的提供程序类是: 在eclipse中查看引用的库时,我在和上都看到了注释。是什么赋予了?我可以使用最新的替代供应商吗? 我正在使用hibernate版本3.4.0.GA,以防万一。 问题答案: 是什么赋予了?我可以使用最新的替代供应商吗? 不推荐使用它