请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

通过fulfilled,pending,rejected怎样控制不一样的http状态码

fulfilled,pending,rejected这三个状态是谁怎样决定的呢?
如果http返回400,404或者其他状态码,那是fulfilled还是rejected?

正在回答 回答被采纳积分+3

1回答

阿莱克斯刘 2021-08-05 01:10:54

要理解fulfilled,pending,rejected这三个状态,首先要理解Promise。

实际上,fulfilled,pending,rejected这三个状态并不来自react-thunk,而是来源于Promise。也就是说一个Promise天生带有fulfilled,pending,rejected这三个状态。

https://img1.sycdn.imooc.com//szimg/610ac925099106d016941284.jpg

请查看相关文档: https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Promise

代码如下:

const myPromise =
  (new Promise(myExecutorFunc))
  .then(handleFulfilledA)
  .then(handleFulfilledB)
  .then(handleFulfilledC)
  .catch(handleRejectedAny);

实际上所有非200级别(如200ok,204 no content)的请求都会被视为请求失败,进入catch,也就是rejected状态。所以,400、404、401、403、甚至是500都会被catch接管,进入rejected的流程。


0 回复 有任何疑惑可以回复我~
  • 提问者 Josephhhhh #1
    好的理解了,原来是对应Promise的
    回复 有任何疑惑可以回复我~ 2021-08-05 07:39:35
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信