我正在将离子3.8应用程序迁移到3.9.2.
此迁移包括对RXJS 5.5的更新
此迁移包括对RXJS 5.5的更新
我现在遇到这个错误:
TypeError:this._subscribe不是函数. (在’this._subscribe(sink)’中,’this._subscribe’是t的一个实例)
- protected observeConnectionState() {
- // rxjs/observable/of
- of(new Event('disconnect'))
- .pipe(
- // rxjs/operators/merge
- merge(connect$),merge(disconnect$),// Map eventname to string (rxjs/operators/map)
- map((e: IEvent) => {
- return e.eventName == 'connect' ? 'connected' : 'disconnected';
- })
- )
- // Apply to class context
- .subscribe((newConnectionState) => {
- // this.connectionState$is a BehaviorSubject
- this.connectionState$.next(newConnectionState);
- });
- }
附加信息
> RXJS代码中有两个地方,我能找到这个._subscribe:Observable.ts Line 203和Observable.ts Line 208.
好吧,我发现了问题.它与科尔多瓦无关.
对于遇到此问题的其他人:
忘记堆栈跟踪 – 它没用.在我的情况下,在this.connectionState $的订阅者中,我尝试从promise创建一个Observable.但我做错了.
这是错的:
- import { Observable } from 'rxjs/Observable';
- //...
- const myObservable$= Observable.create(myPromise);
这是应该如何做到的:
- import { fromPromise } from 'rxjs/observable/fromPromise';
- // ...
- const myObservable$= fromPromise(myPromise);