Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Pipe RxJS observable to existing subject

There is existing subject that is in use:

const fooSubject = new BehaviorSubject(null); 

And there is another observable (another subject in this example):

const barSubject = new Subject(); barSubject.subscribe(   value => fooSubject.next(),   err => fooSubject.error(err),   () => fooSubject.complete() );  barSubject.next('bar'); 

The code works but looks clumsy.

Is there a better way to pipe (in broad sense, not necessarily using pipe operator) barSubject observable to fooSubject? It looks like an operation that could be handled by the library itself.

like image 202
Estus Flask Avatar asked Feb 20 '18 08:02

Estus Flask


People also ask

Does pipe subscribe to Observable?

Async pipelinkThe AsyncPipe subscribes to an observable or promise and returns the latest value it has emitted.

Does pipe return Observable?

A Pipeable Operator is a function that takes an Observable as its input and returns another Observable.

Why use subject instead of Observable?

Observable can inform only one observer, while Subject can inform multiple observers. for each subscription observable output is diffrent but if you are expecting same output for in diffrent observer recommended to use Subject!


1 Answers

Since Subject is already an observer with methods next(), error() and complete() you can just subscribe it to any Observable:

const fooSubject = new BehaviorSubject(null);  const barSubject = new Subject(); barSubject.subscribe(fooSubject);  barSubject.next('bar'); 
like image 109
martin Avatar answered Sep 23 '22 07:09

martin