angular - 使用lettable的publishLast运算符时如何获取ConnectableObservable

标签 angular rxjs

我如何重构这一点:

  const warmObservable = this.httpClient.get<Result[]>(url).publishLast();
  warmObservable.connect();

可出租运营商?

当我使用时:

  const warmObservable = this.httpClient.get<Result[]>(url).pipe(publishLast());
  warmObservable.connect();

我收到错误:

Property 'connect' does not exist on type 'Observable<any>'.

使用的版本:[email protected]

最佳答案

pipe 方法始终返回 Observable,如您在此处看到的:https://github.com/ReactiveX/rxjs/blob/master/src/Observable.ts#L293

所以你需要自己进行类型转换。

const warmObservable = this.httpClient.get<Result[]>(url).pipe(publishLast()) as ConnectableObservable;
warmObservable.connect();

关于angular - 使用lettable的publishLast运算符时如何获取ConnectableObservable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47155043/

相关文章:

预设值时,Angular 4 响应式(Reactive)表单验证器要求显示触摸错误

javascript - Angular 7 - 加载外部脚本时使用 setInterval 的替代方法

javascript - 如何使用具有多个输入的 Angular 结构指令

angular - 在 Angular 2 中使用 @Inject 时无法扩展父类(super class)

rxjs - shareReplay 与 ReplaySubject - 只有 ReplaySubject 在订阅前缓存最新值

rxjs - 带有 RxJS 的可暂停缓冲区

angular - 类似 promise 风格的顺序可观察对象

javascript - 将 Angular 4 升级到 5 后,Api 无法工作并抛出控制台错误

javascript - RxJS 通过 fromEventPattern 中的 NodeEventHandler 抛出错误

typescript - rxjs forkJoin Observable<never> 不可分配给 OperatorFunction<nerver> 类型的参数