The “vanilla” store implementation you get by calling createStore only supports plain object actions and hands them immediately to the reducer.
However, if you wrap createStore with applyMiddleware, the middleware can interpret actions differently, and provide support for dispatching async actions. Async actions are usually asynchronous primitives like Promises, Observables, or thunks.
C. Seitz, C. Legat, и J. Neidig. Workshops Proceedings of the 5th International Conference on Intelligent Environments, том 4 из Ambient Intelligence and Smart Environments, стр. 51--57. Amsterdam, IOS Press, (2009)