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

来源:10-8 【redux-toolkit】sotre配置(configureStore)与异步处理(createAsyncThunk)

Josephhhhh

2021-08-03

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

写回答

1回答

阿莱克斯刘

2021-08-05

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

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

//img.mukewang.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
1
Josephhhhh
好的理解了,原来是对应Promise的
2021-08-05
共1条回复

React18 系统精讲 结合TS打造旅游电商平台

React18 精讲 + 结合 TS 实战 + 热门业务开发,获取必备技能

1993 学习 · 1015 问题

查看课程