Переключайтесь между потоками данных и заставляйте их приостанавливать / воспроизводить с помощью RxJs

У меня есть 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){...})

но он продолжает прыгать между двумя потоками, отображая оба, что я делаю не так?

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

martin 05.10.2018 10:36

проблема заключалась в том, что я определил наблюдаемые в функции экспорта и вызывал их из двух представлений, теперь я обновил код с помощью средства проверки, которое, если user_id изменено, завершает наблюдаемое во всех представлениях и повторно отображает текущие с новым user_id, я скоро опубликую код

AliS 07.10.2018 03:36
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
Promise v/s Observable в Angular
Promise v/s Observable в Angular
В системах Push производитель определяет, когда отправить данные потребителю. Потребитель не знает, когда он получит эти данные.
Подсказка RxJS [filter, skipWhile]
Подсказка RxJS [filter, skipWhile]
Эта подсказка описывает разницу между операторами filter и skipWhile из библиотеки RxJS .
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
0
2
57
0

Другие вопросы по теме