中介軟體

當你撥打 store.dispatch(actionObject) 時,它會同步處理。即,將呼叫 reducer 並通知你的商店偵聽器,你的反應檢視將在每個排程的操作上重新呈現。

中介軟體使你可以延遲排程甚至在中間排程不同的操作。即中介軟體使你的非同步操作看起來是同步的。

const myAsyncMiddleware = (store) => {
    return (next) => {
        return (action) => {
            if(action.type === "ASYNC_ACTION") {
              setTimeout(() => {
                store.dispatch({ type: "ASYNC_ACTION_RESPONSE" });
              }, 1000);
            } else {
              return next(action);
            }
        }
    }
}

const store = createStore(
  reducer,
  applyMiddleware(myAsyncMiddleware)
);