什么是 RxJS (redux-observable) 替代 takeLatest from redux-saga?
What is RxJS (redux-observable) alternative to takeLatest from redux-saga?
如果史诗收到新动作,停止处理旧动作。
一点背景:我有一个史诗,它发出很少的延迟动作。
如果 epic 收到新动作,我需要取消它们。
Redux-saga 效果完全符合我的要求:
takeLatest
这正是 .switchMap 运算符所做的:
Projects each source value to an Observable which is merged in the output
Observable, emitting values only from the most recently projected 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>
如果史诗收到新动作,停止处理旧动作。 一点背景:我有一个史诗,它发出很少的延迟动作。 如果 epic 收到新动作,我需要取消它们。
Redux-saga 效果完全符合我的要求: takeLatest
这正是 .switchMap 运算符所做的:
Projects each source value to an Observable which is merged in the output Observable, emitting values only from the most recently projected 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>