angular $ http/jquery完全等价

Ren*_*aud 13 http callback promise angularjs angular-promise

有没有办法用angular $ http模块模拟jquery'完整'回调?无论请求是成功还是失败,我都会想要执行一些代码,此时我发现自己必须写这个:

$http.get(someUrl).success(function(){
        successCode();
        completeCode();
    }).error(function(){
        errorCode();
        completeCode();
    })
Run Code Online (Sandbox Code Playgroud)

但我宁愿写下这样的东西:

$http.get(someUrl).success(function(){
        successCode();
    }).error(function(){
        errorCode();
    }).complete(function(){
        completeCode();
    })
Run Code Online (Sandbox Code Playgroud)

我也试过使用promise API,但我最终遇到了同样的问题.有什么建议吗?

Ben*_*aum 14

2014年8月更新: .always.finally在最新版本的Angular中重命名.不想.finally.always.

请注意,为了支持IE8,您必须使用括号表示法来调用它["finally"].


您可以.always在AngularJS中使用

这个改变是相当新的(你可以在jQuery中做一段时间),你可以在这里看到提交.这需要您使用AngularJS 1.1.5或更高版本.

always(callback) - 允许您观察承诺的履行或拒绝,但是在不修改最终价值的情况下这样做.无论承诺被拒绝还是已解决,这对于释放资源或进行必要的清理都非常有用.有关更多信息,请参阅完整规范.

小提琴

  • 它似乎不适用于当前的角度v1.2.15.看起来总是不存在,我收到一个错误.有任何解决这个问题的方法吗? (3认同)
  • 你应该提到它是在1.1.5及更高版本中. (2认同)