承诺解决了哪些状态代码

时间:2014-07-16 08:23:13

标签: javascript angularjs promise

我想澄清哪些http状态代码解决了来自$ http的承诺并且拒绝了该承诺。据我了解,它仅在200的情况下解决,其余的被拒绝。

是吗?还是有其他情况?

2 个答案:

答案 0 :(得分:3)

编辑:

对于AngularJS

  

200到299之间的响应状态代码被视为成功状态,并将导致调用成功回调。任何超出该范围的响应状态代码都被视为错误状态,并将导致调用错误回调。

来源:https://github.com/angular/angular.js/blob/master/src/ng/http.js

答案 1 :(得分:0)

正如Bergi在对你的问题的评论中所指出的,答案在于源代码。 $http中有一个名为isSuccess的私有函数,如下所示:

function isSuccess(status) {
  return 200 <= status && status < 300;
}

它在该文件中的几个地方使用过,但对我们来说重要的是:

(isSuccess(status) ? deferred.resolve : deferred.reject)({ //...

所以有你的答案! 2 **(两百个)范围内的任何状态代码都是成功的,并且将解决$ http包围XHR的承诺,其他任何事情都是失败的并且会拒绝它。

现在也在docs for $http中解释了它。