Redux-trunk 的源码认识

function createThunkMiddleware(extraArgument) {
  return ({ dispatch, getState }) => next => action => {
    if (typeof action === 'function') {
      return action(dispatch, getState, extraArgument);
    }

    return next(action);
  };
}

const thunk = createThunkMiddleware();
thunk.withExtraArgument = createThunkMiddleware;

export default thunk;

以上就是redux-thunk的全部源码,可以看到,最终传给applyMiddleware的参数是createThunkMiddleware中的返回值,也就是一个redux的中间件。

redux中间件是劫持dispatch用的,它能让我们在真正分发action之前或之后做一些自定义的逻辑。

redux-thunk就是判断了一下action是不是一个函数,如果是一个函数,则执行,否则向下一个中间件传递action。

你可能感兴趣的:(javascript)