# 異步數據流
如果不使用 [middleware](#) 的話,Redux 的 store 只支持 [同步數據流](#)。而這也是 [`createStore()`](#) 所默認提供的創建方式。
你可以使用 [`applyMiddleware()`](#) 來增強 [`createStore()`](#)。這不是必須的,但它可以讓你 [以更簡便的方式來描述異步的 action](#)。
像 [redux-thunk](https://github.com/gaearon/redux-thunk) 或 [redux-promise](https://github.com/acdlite/redux-promise) 這樣支持異步的 middleware 都包裝了 store 的 [`dispatch()`](#) 方法,以此來讓你 dispatch 一些除了 action 以外的其他內容,例如:函數或者 Promise。你所使用的任何 middleware 都可以以自己的方式解釋你 dispatch 的任何內容,并繼續傳遞 actions 給下一個 middleware。比如,一個 Promise middleware 能夠 Promise,然后針對每個 Promise 異步地 dispatch 一對 begin/end actions。
當 middleware 鏈中的最后一個 middleware dispatch action 時,這個 action 必須是一個普通對象。這是 [同步式的 Redux 數據流](#) 開始的地方(譯注:這里應該是指,你可以使用任意多異步的 middleware 去做你想做的事情,但是需要使用普通對象作為最后一個被 dispatch 的 action ,來將處理流程帶回同步方式)。
### 下一步
現在你已經學完 Redux 數據流的全部內容!可以查看 [異步示例源碼](#),或者繼續閱讀 [集成 React Router](#)。