redux-saga 和 redux-thunk 是最广为人知的2种 redux 的异步流处理方案。在认识 redux-saga 之前,我们先再看一看 redux-thunk。
在 redux 里,dispatch 出的 action 是一个对象,而 redux-thunk 中间件可以返回一个函数,函数处理完之后再 dispatch 一个对象到 reducer 里。redux 的源码也相当简单:1
2
3
4
5
6
7
8function createThunkMiddleware (extraArgument) {
return ({ dispatch, getState }) => next => action => {
if (typeof action === 'function') {
return action(dispatch, getState, extraArgument)
}
return next(action)
}
}