Является ли store.dispatch в Redux синхронным или асинхронным
Я понимаю, что это основной вопрос, но мне не повезло найти ответ в другом месте.
Является store.dispatch
синхронным или асинхронным в Redux
?
В случае асинхронности есть возможность добавить обратный вызов после того, как действие было распространено, как это возможно с помощью React
?
Ответы
Ответ 1
AFAIK, диспетчерское действие синхронно. Если вы хотите обратиться к асинхронному вызову, вы можете использовать thunk-middleware в redux, где отправка предоставляется как функция обратного вызова, которая вы можете ссылаться на свое усмотрение. Для получения дополнительной информации просмотрите этот ответ на SO самим автором: Как отправить действие Redux с тайм-аутом?
Ответ 2
Никто не знает лучше, чем сам код. =) Как видите, dispatch
абсолютно синхронная. Единственным предупреждением здесь является то, что средства enhancers
хранилища могут (и делают) заменить способ dispatch
. Например, взгляните на энхансер applyMiddleware
, он позволяет applyMiddleware
промежуточное ПО, заменив метод dispatch
по умолчанию собственной реализацией. Хотя я никогда не видел никакого Redux enhancer
который бы на самом деле убрал синхронный характер dispatch
Ответ 3
На самом деле я попытался console.log до и после отправки действия и увидел, что при обращении к измененному значению оно не изменяется сразу. Как это может быть возможно...?