Да.
По умолчанию отправка выполняется на 100% синхронно.
Если вы добавляете промежуточное ПО, промежуточное ПО может изменять, задерживать или останавливать выполнение действия черезконвейер диспетчеризации.
Однако в этом случае промежуточное ПО redux-thunk
не делает ничего асинхронного. Он просто проверяет, является ли «действие» на самом деле функцией, и, если это так, выполняет ее немедленно:
function createThunkMiddleware(extraArgument) {
return ({ dispatch, getState }) => (next) => (action) => {
if (typeof action === 'function') {
return action(dispatch, getState, extraArgument);
}
return next(action);
};
}
Если применяется промежуточное программное обеспечение thunk, store.dispatch(someThunkFunction)
возвратит все, что возвращает функция thunk. Таким образом, если вы вернете обещание из thunk, это обещание будет возвращено из store.dispatch()
.
Для типов TS первый универсальный аргумент должен указывать ожидаемый тип возврата функции thunk. Однако вам, скорее всего, придется указать это самостоятельно - оно не должно появляться случайным образом.