我有一个本机应用程序,我需要简单地保留在应用程序中调度的所有原始操作。我的想法是,我得到一种简单的事件存储,我稍后可以聚合报告和统计信息。 要求是每个操作都持久存储,并且它们按照调度的顺序持久存储。
我选择使用actionChannel
效果的简单案例:
import { actionChannel, call, take } from 'redux-saga/effects'
export function* track() {
const catchAll = yield actionChannel('*');
while (true) {
const action = yield take(catchAll);
yield call(persist, action);
}
}
这会持续所有操作,但不会按调度的顺序执行。但是,使用Redux DevTools,我看到报告了正确的顺序。
有什么明显的我错过了吗?
如何保证获得正确的订单?
actionChannel()
甚至可以这样工作吗?
答案 0 :(得分:0)
看起来很简单:track
传奇是最后一个获得注册的传奇。在将sagaMiddleware.run(track);
移动到第一个之后,事情按预期工作。
然而,除了第一个之外的任何动作的顺序无论如何都会正确地进行。但是我专注于前<〜> 的第一个~5个动作是正确的顺序。