RXJS: TypeError: this._subscribe is not a function
Well, I found the problem. And it's not related to Cordova.
For other people encountering this problem:
Forget the stack trace - it's useless. In my case in a subscriber of this.connectionState$
I tried to create an Observable from a promise. But I did it wrong.
This is what was wrong:
import { Observable } from 'rxjs/Observable';
//...
const myObservable$ = Observable.create(myPromise);
This is how it should be done:
import { fromPromise } from 'rxjs/observable/fromPromise';
// ...
const myObservable$ = fromPromise(myPromise);
I was getting exactly same error message in one of my angular application while doing upgrade when I replaced Observable.of(someval as any)
with new Observable(someval as any)
.
Error: Uncaught (in promise): TypeError: this._subscribe is not a function
I also tried to make it Observable.create(someval as any)
but the same error.
Solution
Replacing it with of(someval as any)
resolved the problem for me.
import { of } from 'rxjs';
// use it just like this
of(retval as any);
detailed error message
ERROR Error: Uncaught (in promise): TypeError: this._subscribe is not a function TypeError: this._subscribe is not a function at Observable.push../node_modules/rxjs/_esm5/internal/Observable.js.Observable._trySubscribe (Observable.js:42) at Observable.push../node_modules/rxjs/_esm5/internal/Observable.js.Observable.subscribe (Observable.js:28) at MapOperator.push../node_modules/rxjs/_esm5/internal/operators/map.js.MapOperator.call (map.js:18) at Observable.push../node_modules/rxjs/_esm5/internal/Observable.js.Observable.subscribe (Observable.js:23) at MapOperator.push../node_modules/rxjs/_esm5/internal/operators/map.js.MapOperator.call