如果史诗收到新动作,请停止处理旧动作。 一点上下文:我有一个史诗,它会发出一些延迟的动作。 如果史诗收到新动作,我需要取消它们。
Redux-saga效果完全符合我的要求: takeLatest
答案 0 :(得分:3)
这正是.switchMap运算符的作用:
将每个源值投影到在输出中合并的Observable 可观察,仅从最近投射的Observable中发出值。
在此示例中,您可以看到在新的interval
到达后,之前的click
不再处理:
const clicks = Rx.Observable.fromEvent(document, 'click');
const result = clicks.switchMap((ev) => Rx.Observable.interval(1000));
result.subscribe(x => console.log(x));

<script src="https://unpkg.com/rxjs/bundles/Rx.min.js"></script>
<button>send new click</button>
&#13;