tmu*_*sch 9 rxjs5 ionic3 angular
我正在将离子3.8应用程序迁移到3.9.2.此迁移包括对RXJS 5.5的更新
我现在遇到这个错误:
TypeError: this._subscribe is not a function. (In 'this._subscribe(sink)', 'this._subscribe' is an instance of 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);
});
}
Run Code Online (Sandbox Code Playgroud)
附加信息
this._subscribe:Observable.ts第203行和Observable.ts第208行.好吧,我发现了问题.它与Cordova无关.
对于遇到此问题的其他人:忘记堆栈跟踪 - 它没用.在我的情况下,this.connectionState$我试图从一个承诺创建一个Observable.但我做错了.
这是错的:
import { Observable } from 'rxjs/Observable';
//...
const myObservable$ = Observable.create(myPromise);
Run Code Online (Sandbox Code Playgroud)
这是应该如何做到的:
import { fromPromise } from 'rxjs/observable/fromPromise';
// ...
const myObservable$ = fromPromise(myPromise);
Run Code Online (Sandbox Code Playgroud)
我在我的角度应用之一,恰好有相同的错误消息,在做升级时,我换成Observable.of(someval as any)用new Observable(someval as any)。
错误:未捕获(承诺):TypeError:this._subscribe不是函数
我也试图做到这一点,Observable.create(someval as any)但同样的错误。
替换of(someval as any)为我可以解决问题。
import { of } from 'rxjs';
// use it just like this
of(retval as any);
Run Code Online (Sandbox Code Playgroud)
详细的错误信息
错误错误:未捕获(承诺):TypeError:this._subscribe不是函数TypeError:this._subscribe不是Observable.push ../ node_modules / rxjs / _esm5 / internal / Observable.js.Observable._trySubscribe的函数在Observable.push ../ node_modules / rxjs / _esm5 / internal /上的Observable.push ../ node_modules / rxjs / _esm5 / internal / Observable.js.Observable.subscribe(Observable.js:28)处的Observable.js:42)。 Observable.push上的operator / map.js.MapOperator.call(map.js:18)../ MapOperator.push上的node_modules / rxjs / _esm5 / internal / Observable.js.Observable.subscribe(Observable.js:23)。 ./node_modules/rxjs/_esm5/internal/operators/map.js.MapOperator.call
| 归档时间: |
|
| 查看次数: |
5278 次 |
| 最近记录: |