我有一个使用redux的React Native应用程序,所有HTTP请求都通过异步操作使用redux-promise-middleware执行。现在,我想处理API可能发送的每个错误,因此我正在实现一个redux中间件,该中间件将拦截每个类型为
XXX_REJECTED
的操作(因为redux-promise-middleware在异步操作失败时会派发一个_REJECTED
操作)。但是现在我遇到了这个问题...在中间件中,我想能够调度一个新操作(例如API_ERROR
),并仍然能够对原始操作(XXX_REJECTED
)执行next()
。以下是我的中间件:export default ({ dispatch }) => next => (action) => {
if (action.type.match(/w*(_REJECTED)/)) {
dispatch({
type: 'API_ERROR',
payload: action.payload,
})
}
next(action)
}
但是,使用此代码后,一旦新操作被分派,next()
就不会被执行。
这有意义吗?在中间件中是否可以分派多个操作?
dispatch
不會返回 Promise,因此無法使用.then
進行鏈接。但還是謝謝你的幫助!:D - user2997932.then
链接了 :D - damm123