Отмена наблюдаемого, когда определенные наблюдаемые испускают данные rxjs - PullRequest
0 голосов
/ 02 октября 2018

У меня есть три источника данных:

let insightsFromDB$;// Return observable of insight object
let insightsFromAPI$;// Return observable of insight object
let insightsFromWebsockets; // Return observable of insight object
     otherObservable$
       .merge(insightsFromDB$, insightsFromAPI$) // Return observable of insight object 
      .map(insight=>insight.likes)

Я хочу добавить insightsFromWebsockets$ к otherObservable$ таким образом, что, если он выдает значение, он отменяет объект понимания, поступающий изоператор слияния и испускает объект, идущий от insightsFromWebsockets$ к оператору карты.

Для большей ясности я добавил следующую мраморную диаграмму, обобщающую мой код: enter image description here

1 Ответ

0 голосов
/ 02 октября 2018

Поэтому, если я правильно понимаю ваши требования:

  • вы хотите получать значения из потоков x и z (merge)
  • один раз z испускаетвас больше не интересуют значения x (takeUntil)

Пример реализации:

    var x = Rx.Observable.interval(300);
    var y = Rx.Observable.timer(1500, 500).mapTo('y');
    
    x.takeUntil(y)
      .merge(y)
      .take(8).subscribe(console.log)
<script src="https://cdnjs.cloudflare.com/ajax/libs/rxjs/5.5.12/Rx.js"></script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...