Перейти к содержанию

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

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

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

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

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

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

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

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