通过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这三个状态。
请查看相关文档: 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的流程。
012021-08-05
相似问题