Ответ
В Redux actions обрабатываются синхронно и последовательно, но только в рамках одного вызова dispatch. Если dispatch вызывается дважды (например, в разных асинхронных операциях), порядок не гарантирован.
Для последовательного выполнения используйте middleware (redux-thunk, redux-saga):
// С redux-thunk
const sequentialActions = () => async (dispatch) => {
await dispatch(firstAction());
await dispatch(secondAction()); // Выполнится строго после firstAction
};
Или объедините логику в один action, если они должны быть атомарными. Redux сам по себе не гарантирует порядок между независимыми вызовами dispatch.