RxJs 6:从 Observable 获取 ConnectableObservable

RxJs 6: Get ConnectableObservable from Observable

Angular 6 需要对 RxJs 6 进行更新,随着 RxJs 更新,Observable.publish() 功能消失了。我在 RxJs/operators 中找到了一个 publish 运算符,但我不知道如何使用它。

如何重写此 RxJs 5 代码以与 RxJs 6 一起使用?

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

import { ConnectableObservable } from "rxjs"
import { publish } from "rxjs/operators";

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

特别感谢@cartant

您也可以尝试此版本而不转换为 ConnectableObservable 类型。这样你就不需要导入和转换。 这是必需的,因为根据文档 pipe() 始终 returns 可观察。

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 存储库上,请参阅 link to the issue