Angular 6 需要对 RxJs 6 进行更新,并且随着 RxJs 更新,该Observable.publish()
功能消失了。我找到了一个publish
操作员,RxJs/operators
但我无法弄清楚如何使用它。
如何重写此 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()
总是返回 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 存储库上,请参阅问题链接。