2

升级后:Angular "5.2.0" -> "6.0.2" and rxjs": "^5.2.0", -> "rxjs": "^6.0" and "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 所有路径都已更新,但浏览器上仍然出现相同的错误。

4

1 回答 1

1

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

这是 PromiseObservable 失败的原因:

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

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

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

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

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

由 of() 观察到的.of()

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

于 2018-05-28T10:10:05.597 回答