У меня есть getUserData$(userId)
, который возвращает пользовательские данные на основе выпадающего списка, и, если не предоставлен userId, возвращает поток по умолчанию, pauser
отражает состояние паузы / воспроизведения,
var clicks = Observable.fromEvent(document, 'click')
.map(function() {
var pauseStatus= state.get('dashboard').get('pauseStatus')
return pauseStatus;
});
var pauser = new Subject();
clicks.subscribe(pauser);
Я хочу переключаться междуразличные потоки и делают их также приостановленными:
var sources = [];
var newSub =()=>{return new Subject();}
sources.push(newSub());
getUserData$().subscribe(sources[0]);
//if new user is selected from dropdown
if(user_id){
sources.push(newSub());
getUserData$(user_id).subscribe(sources[sources.length-1]);
}
var pausable = pauser.switchMap(paused => paused ? Observable.empty() : sources[sources.length-1]);
pausable.subscribe(function(result){...})
но он продолжает прыгать между двумя потоками, отображая оба, что я делаю не так?