Edit This Page

非同步資料流

不使用 middleware 的話,Redux 的 store 只支援同步資料流。 這就是你使用 createStore() 預設會拿到的。

你可以用 applyMiddleware() 來加強 createStore()。這不是必須的,不過這讓你用比較方便的方式來表達非同步的 action

非同步的 middleware 像是 redux-thunk 或是 redux-promise 都包裝了 store 的 dispatch() 方法,並允許你 dispatch 一些 action 以外的東西,例如:function 或 Promise。你使用的任何 middleware 可以接著解譯你 dispatch 的任何東西,並轉而傳遞 action 到下一個鏈中的 middleware。例如,Promise middleware 可以攔截 Promise,並針對每一個 Promise 非同步的 dispatch 一對的開始/結束 action。

當最後一個在鏈中的 middleware 要 dispatch action 時,action 必須是個一般物件。這就是同步的 Redux 資料流開始的地方。

請查看非同步範例完整的原始碼

下一步

現在你已經看過一個 middleware 在 Redux 中可以做到什麼的範例了,是時候來學習它實際上如何運作,還有你可以如何建立你自己的 middleware。前進到下一個章節有 Middleware 相關的詳細內容。