Rxjs 6 等效于 Observable.create(subscriber -> ...).share()

Posted

技术标签:

【中文标题】Rxjs 6 等效于 Observable.create(subscriber -> ...).share()【英文标题】:Rxjs 6 equivalent of Observable.create(subscriber -> ...).share()Rxjs 6 等效于 Observable.create(subscriber -> ...).share() 【发布时间】:2018-11-28 11:05:29 【问题描述】:

我正在将我的 Angular 5 应用程序升级到 Angular 6,因此从 rxjs 5 升级到 rxjs 6,我在迁移以下代码时遇到了麻烦:

const myObservable = Observable.create(subscriber => 
    // do something with the subscriber
).share();

尤其是我收到了这个错误:

TypeError: Observable_1.Observable.create(...).share 不是 functionTypeError: Observable_1.Observable.create(...).share 不是

【问题讨论】:

github.com/ReactiveX/rxjs/blob/master/doc/pipeable-operators.md 【参考方案1】:
import  Observable  from "rxjs";
...
let obs$ = new Observable(...);
...

上面的代码应该可以解决问题

【讨论】:

【参考方案2】:

您需要按如下方式传递 share() 而不是链接:

const myObservable = Observable.create(subscriber => 
    // do something with the subscriber
).pipe(share());

还要确保您按如下方式导入共享:

import share from 'rxjs/operators';

【讨论】:

以上是关于Rxjs 6 等效于 Observable.create(subscriber -> ...).share()的主要内容,如果未能解决你的问题,请参考以下文章

开关映射的 RxSwift 等效项

Javascript 等效于 Python 的 zip 函数

RxJS 6有哪些新变化?

RxJS 序列等价于 promise.then()?

如何在不需要 rxjs-compat 的情况下只导入 RxJS 6 中使用的运算符,如旧的 RxJS?

RxJS 迁移 5 到 6 - 使用 TakeUntil 取消订阅