【发布时间】:2018-06-29 14:18:40
【问题描述】:
如果史诗接收到新动作,停止处理旧动作。 一点背景:我有一个史诗,它发出的延迟动作很少。 如果史诗收到新动作,我需要取消它们。
Redux-saga 效果正是我想要的: takeLatest
【问题讨论】:
标签: rxjs redux-saga redux-observable
如果史诗接收到新动作,停止处理旧动作。 一点背景:我有一个史诗,它发出的延迟动作很少。 如果史诗收到新动作,我需要取消它们。
Redux-saga 效果正是我想要的: takeLatest
【问题讨论】:
标签: rxjs redux-saga redux-observable
这正是.switchMap 操作员所做的:
将每个源值投影到一个 Observable 中,该 Observable 被合并到输出中 Observable,仅从最近投影的 Observable 发射值。
在此示例中,您可以看到在新的 click 到达后,先前的 interval 不再处理:
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>
【讨论】: