Flujo asíncrono
Sin middlewares, Redux sólo soporta flujos de datos síncronos. Es lo que obtienes por defecto con createStore()
.
Seguramente mejoraste createStore()
con applyMiddleware()
. No es necesario, pero te permite usar acciones asíncrona de forma más fácil.
Middlewares asíncronos como redux-thunk o redux-promise envuelven el método dispatch()
y te permiten despachar otras cosas además de acciones, por ejemplo funciones o promesas. Cualquier middleware que uses entonces interpretan cualquier cosa que despaches, y entonces, pueden pasar acciones al siguiente middleware de la cadena. Por ejemplo, un middleware de promesas puede interceptar cualquier promesa y despachar acciones asíncronas en respuesta a estas.
Cuando el último middleware de la cadena despache una acción, tiene que ser un objeto plano. Acá es cómo el flujo de datos síncrono de Redux toma lugar.
Revisa el código fuente del ejemplo asíncrono.
Siguientes pasos
Ahora que viste un ejemplo de que puede hacer un middleware en Redux, es hora de aprender cómo funcionan, y cómo puedes crear uno propio. Ve a la siguiente sección detallada sobre Middlewares.