У меня есть 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){...})
но он продолжает прыгать между двумя потоками, отображая оба, что я делаю не так?
проблема заключалась в том, что я определил наблюдаемые в функции экспорта и вызывал их из двух представлений, теперь я обновил код с помощью средства проверки, которое, если user_id изменено, завершает наблюдаемое во всех представлениях и повторно отображает текущие с новым user_id, я скоро опубликую код


![Подсказка RxJS [filter, skipWhile]](https://i.imgur.com/QlvZflrb.jpeg)

Можете ли вы сделать демонстрацию stackblitz?