RxJs 6: получить ConnectableObservable от Observable - PullRequest
0 голосов
/ 16 мая 2018

Angular 6 требует обновления RxJs 6, и с этим обновлением RxJs функция Observable.publish() исчезла.Я нашел оператор publish в RxJs/operators, но у меня возникли проблемы с выяснением, как его использовать.

Как можно переписать этот код RxJs 5 для работы с RxJs 6?

const myConnectableObservable = this.getObservable().publish()

Ответы [ 2 ]

0 голосов
/ 15 июля 2019

Вы также можете попробовать эту версию без приведения к типу ConnectableObservable.Таким образом, вам не нужно импортировать и кастовать. Это необходимо, поскольку в соответствии с документацией pipe() всегда возвращает Observable.

import { interval } from 'rxjs';
import { filter, publish } from 'rxjs/operators';

const source = interval(400);

const observable = publish()(source.pipe(
  filter(x => x % 2 === 0),
));

observable.connect();

Первоначально размещено в репозитории RxJS GitHub в качестве проблемы, см. ссылку на проблему .

0 голосов
/ 16 мая 2018
import { ConnectableObservable } from "rxjs"
import { publish } from "rxjs/operators";

const myConnectableObservable: ConnectableObservable<MyClass> = myService.getObservable().pipe(publish()) as ConnectableObservable<MyClass>;

Особая благодарность @ cartant

...