繁体   English   中英

承诺解决了哪些状态代码

[英]For which status codes does the promise resolve

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

那正确吗? 还是有其他情况?

编辑:

对于AngularJS

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

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

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

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

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

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

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

它现在也在$ http文档中解释。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM