DarkLeafyGreen
DarkLeafyGreen

Reputation: 70466

mergeMap throws 'invalid object where a stream was expected' error in rxjs6

After migrating rxjs from v5 to v6 I experience an error when using mergeMap:

of('foobar').pipe(
  mergeMap(() => of('baz'))
).subscribe(console.log);  

Error:

core.js:1598 ERROR TypeError: You provided an invalid object where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.
    at Object.push../node_modules/rxjs/internal/util/subscribeTo.js.exports.subscribeTo (subscribeTo.js:42)
    at Object.subscribeToResult (subscribeToResult.js:7)
    at MergeMapSubscriber.push../node_modules/rxjs/internal/operators/mergeMap.js.MergeMapSubscriber._innerSub (mergeMap.js:132)
    at MergeMapSubscriber.push../node_modules/rxjs/internal/operators/mergeMap.js.MergeMapSubscriber._tryNext (mergeMap.js:129)
    at MergeMapSubscriber.push../node_modules/rxjs/internal/operators/mergeMap.js.MergeMapSubscriber._next (mergeMap.js:112)
    at MergeMapSubscriber.push../node_modules/rxjs/internal/Subscriber.js.Subscriber.next (Subscriber.js:103)
    at Observable._subscribe (scalar.js:5)
    at Observable.push../node_modules/rxjs/_esm5/internal/Observable.js.Observable._trySubscribe (Observable.js:176)
    at Observable.push../node_modules/rxjs/_esm5/internal/Observable.js.Observable.subscribe (Observable.js:161)
    at MergeMapOperator.push../node_modules/rxjs/internal/operators/mergeMap.js.MergeMapOperator.call (mergeMap.js:87)

of('baz') is a stream, right? So why do I get this error?

Upvotes: 2

Views: 1157

Answers (1)

DarkLeafyGreen
DarkLeafyGreen

Reputation: 70466

Make sure to import the operators correctly from

rxjs/operators

and not

rxjs/internal/operators

Upvotes: 5

Related Questions