中介軟體
當你撥打 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)
);