Отправка сама по себе на 100% синхронна.
Это крошечная реализация хранилища Redux:
function createStore(reducer) {
var state;
var listeners = []
function getState() {
return state
}
function subscribe(listener) {
listeners.push(listener)
return function unsubscribe() {
var index = listeners.indexOf(listener)
listeners.splice(index, 1)
}
}
function dispatch(action) {
state = reducer(state, action)
listeners.forEach(listener => listener())
}
dispatch({})
return { dispatch, subscribe, getState }
}
К моменту возврата dispatch()
хранилище выполнило вашу функцию-редуктор и вызвало все обратные вызовы подписчика хранилища.
Только когда вы начнете добавлять промежуточное ПО в хранилище, процесс отправки может быть прерван, потому что любое промежуточное ПО может задержать, остановить или перезаписать любое отправленное действие.
То, что вы видитев этом примере фактически основан на том, как работает React.Внутри этого обработчика кликов React еще не перерисовал и не обновил реквизиты компонента, поэтому this.props.whatever
останется прежним до и после отправки.