Асинхронный поток
Без средств, хранилище Redux поддерживает только синхронный поток данных. Именно это вы получаете по умолчанию с помощью createStore().
Вы можете улучшить createStore() с помощью applyMiddleware(). Это необязательно, но это позволяет вам выражать асинхронные действия удобным способом.
Асинхронные средства, такие как redux-thunk или redux-promise, оборачивают метод dispatch() хранилища и позволяют вам отправлять что-то, помимо действий, например, функции или обещания. Любые используемые вами средства могут интерпретировать всё, что вы отправите, и в свою очередь передать действия следующему средству в цепочке. Например, средство для работы с обещаниями может перехватывать обещания и асинхронно отправлять пару начальных/конечных действий в ответ на каждое обещание.
Когда последнее средство в цепочке отправляет действие, оно должно быть обычным объектом. Именно тогда происходит синхронный поток данных Redux.
Посмотрите полный исходный код для примера асинхронности.
Дальнейшие шаги
Теперь вы увидели пример того, что могут делать средства в Redux, пришло время узнать, как это работает на самом деле, и как создать свои собственные. Перейдите к следующему подробному разделу о средствах.
© 2015–2017 Dan Abramov
Licensed under the MIT License.
http://redux.js.org/docs/advanced/AsyncFlow.html