Я не понимаю необходимости чего-то вроде redux-thunk
. Из того, что я понимаю, thunk
- это функция, которая возвращает функцию. Обернутые выражения и использование промежуточного программного обеспечения кажутся мне больше, чтобы запутать происходящее. Взято из кода примера redux-thunk
import thunk from 'redux-thunk';
// Note: this API requires [email protected]>=3.1.0
const store = createStore(
rootReducer,
applyMiddleware(thunk)
);
// Meet thunks.
// A thunk is a function t hat returns a function.
// This is a thunk.
function makeASandwichWithSecretSauce(forPerson) {
// Invert control!
// Return a function that accepts 'dispatch' so we can dispatch later.
// Thunk middleware knows how to turn thunk async actions into actions.
return function (dispatch) {
return fetchSecretSauce().then(
sauce => dispatch(makeASandwich(forPerson, sauce)),
error => dispatch(apologize('The Sandwich Shop', forPerson, error))
);
};
}
// Thunk middleware lets me dispatch thunk async actions
// as if they were actions!
store.dispatch(
makeASandwichWithSecretSauce('Me')
);
Вышеприведенный код может быть написан более кратко и интуитивно понятным:
fetchSecretSauce().then(
sauce => store.dispatch(makeASandwich('Me', sauce)),
error => store.dispatch(apologize('The Sandwich Shop', forPerson, error))
)
Мой вопрос в том, какова потребность в выполнении redux-thunk
и как она улучшается в существующих решениях, аналогичных приведенному выше примеру.