redux-thunk中间件Multiple => Syntex

时间:2019-03-15 01:29:19

标签: javascript redux redux-thunk

我试图了解thunk在shell下的工作方式,但是努力理解从here引用的这段代码

function createThunkMiddleware(extraArgument) {
  return ({ dispatch, getState }) => next => action => {
    // This gets called for every action you dispatch.
    // If it's a function, call it.
    if (typeof action === 'function') {
      return action(dispatch, getState, extraArgument);
    }

    // Otherwise, just continue processing this action as usual
    return next(action);
  };
}

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

export default thunk;

它说这基本上是thunk的代码。让我感到困惑的是倍数=>语法。我知道=>是箭头功能的一部分。 我目前的理解是createThunkMiddleware返回一个函数,我们称它为A,它返回另一个函数B,然后返回另一个函数C。A,B和C的签名如下:

function A ({dispatch, getState}) {
  return B(next)
}
function B (next) {
  return C(action)
}
function C (action) {
  ....
}

但这对我来说没有意义。因为,A如何将next传递给B,这与B相同。

1 个答案:

答案 0 :(得分:0)

redux-thunk只是redux的常规中间件。中间件系统中存在某种类型的控制流。请检查here,您会知道结果如何。