Асинхронный поток

Без посредника (middleware), хранилище Redux поддерживает только синхронный поток данных. Это то, что вы получаете по умолчанию с createStore().

Вы можете расширить createStore() с помощью applyMiddleware(). Это не обязательно, но это позволит вам выразить асинхронные действия в удобном виде.

Асинхронный посредник, типа redux-thunk или redux-promise оборачивает метод хранилища dispatch() и позволяет вам вызывать (dispatch) что-то, что не является объектом действия (action), например, функции или Промисы. Любые посредники которое вы используете, могут интерпретировать все, что вы вызываете (dispatch), и, в свою очередь, могут передать действие (action) следующему посреднику в цепочке. Например, посредник промисов (Promise middleware) может перехватывать промисы и отправлять (dispatch) пару начало/конец действия (action) асинхронно в ответ на каждый промис.

Когда последний посредник в цепочке отправляет действие, оно должно быть простым объектом. Это когда синхронный Redux поток данных имеет место.

Изучите полные исходные коды асинхронного примера.

Следующие шаги

Сейчас вы видели пример того, что посредник (middleware) может сделать в Redux, пришло время, чтобы узнать, как это на самом деле работает и как вы можете создать свой собственный. Перейдите к следующему подробному разделу о Посреднике.