Я пытался понять, как преобразователь работает в оболочке, но изо всех сил пытался понять этот код, на который ссылается здесь.
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.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


redux-thunk — это обычное промежуточное ПО Redux. В системе промежуточного программного обеспечения существует некоторый тип потока управления. пожалуйста, проверьте здесь, и вы узнаете, как это получилось.