[RxJS] Implement pause and resume feature correctly through RxJS
Posted Answer1215
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[RxJS] Implement pause and resume feature correctly through RxJS相关的知识,希望对你有一定的参考价值。
Eventually you will feel the need for pausing the observation of an Observable and resuming it later. In this lesson we will learn about use cases where pausing is possible, and what to do when pausing is impossible.
const resume$ = new Rx.Subject(); const res$ = resume$ .switchMap(resume => resume ? Rx.Observable.interval(2000) : Rx.Observable.empty() ) .do(x => console.log(‘request it! ‘ + x)) .switchMap(ev => Rx.Observable.ajax({ url: ‘https://jsonplaceholder.typicode.com/users/1‘, method: ‘GET‘, })); res$.subscribe(function (data) { console.log(data.response); }); resume$.next(false); setTimeout(() => resume$.next(true), 500); setTimeout(() => resume$.next(false), 5000);
here use
Rx.Observable.empty()
inside switchMap(), it means if code goes to empty(), then the rest of code:
.do().switchMap()
won‘t run.
If just subscribe, it trigger complete function:
var source = Rx.Observable.empty(); var subscription = source.subscribe( function (x) { console.log(‘Next: %s‘, x); }, function (err) { console.log(‘Error: %s‘, err); }, function () { console.log(‘Completed‘); }); // => Completed
以上是关于[RxJS] Implement pause and resume feature correctly through RxJS的主要内容,如果未能解决你的问题,请参考以下文章
[RxJS] Implement RxJS `switchMap` by Canceling Inner Subscriptions as Values are Passed Through(代码片段
[RxJS] Split an RxJS observable conditionally with windowToggle
[RxJS] Split an RxJS Observable into groups with groupBy
[RxJS] Subject: an Observable and Observer hybrid
[RxJS] RefCount: automatically starting and stopping an execution
Think in ISP(image sensor pipe )之How to implement an effecitive AE