升级rxjs 6:this._subscribe不是PromiseObservable.Observable.subscribe的函数

时间:2018-05-28 08:03:08

标签: angular rxjs6

升级后:  角度“5.2.0” - > “6.0.2”和  rxjs“:”^ 5.2.0“, - >”rxjs“:”^ 6.0“和”rxjs-compat“:”^ 6.2.0“,

我在浏览器上发现了这个错误:

TypeError: this._subscribe is not a function
at PromiseObservable.Observable.subscribe (Observable.js:161)
at eval (subscribeTo.js:21)

然后我安装了: npm i -g rxjs-tslint 并运行 rxjs-5-to-6-migrate -p path-to-tsconfig.ts 所有路径都已更新,但浏览器上的错误仍然相同。

1 个答案:

答案 0 :(得分:1)

必须更新代码才能使用rxjs6。

这就是PromiseObservable失败的原因:

  

所有可观察的类(https://github.com/ReactiveX/rxjs/tree/5.5.8/src/observable)都已从v6中删除,有利于执行与类方法相同操作的现有或新操作符。

     

例如,ArrayObservable.create(myArray)可以替换为from(myArray),或者new运算符fromArray()。

在我们的案例中: 新的PromiseObservable(xml2js(responseXML.text())必须替换为from(xml2js(responseXML.text());

- > flatMap(...)替换为:
.pipe(           mergeMap(...)

我可以在代码中找到的另一个例子是:

()

的Observable.of()

如需了解更多信息,请查看以下文档: https://github.com/ReactiveX/rxjs/blob/master/MIGRATION.md#import-paths