switchMap
by pointzerotwo
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/rxjs/5.4.3/Rx.js"></script>
JavaScript
const _user = new Rx.BehaviorSubject(null);
const _pause = new Rx.BehaviorSubject(true);
const pauseCurrentUser$ = _pause.asObservable().distinctUntilChanged();
const currentUser$ = pauseCurrentUser$.switchMap(paused => paused
? Rx.Observable.never()
: _user.asObservable().distinctUntilChanged());
const subscribe = currentUser$.subscribe(val => console.log(val));
_user.next('a')
_user.next('b')
_pause.next(false)
_user.next('c')
_pause.next(true)
_user.next('d')
_pause.next(true)
_pause.next(false)
_user.next('e')