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。
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。