首页 > 解决方案 > 在 saga 和 redux 中发送相同的事件到达顺序

问题描述

情况1

说我dispatch({type: TEST_EVENT})在 UI 中useEffect,我的 saga 和 reducer 都在听同一个事件。谁会先得到它。

案例2

说我dispatch({type: TEST_EVENT})在 UI 中用useEffectsaga 听,然后在 saga 中我做yield put({type: 'TEST_EVENT_1'},然后 reducer(如果正在听TEST_EVENT_1)将能够接收它。有人可以证实这一点吗?

标签: reactjsreduxreact-reduxredux-saga

解决方案


案例 1:从redux-saga中间件源代码中,我们知道 saga 和 reducer 是否都在监听相同的动作类型。减速器将首先获得动作。

案例2:推荐的工作流程是:dispatch SOME_EVENTaction => watcher saga => worker saga => 做某事(调用API、计算等)=> dispatch SOME_EVENT_FULFILLED/ SOME_EVENT_REJECTEDaction to reducer。


推荐阅读