Rxjs SubjectとObsevableの違いは?

Subject とは



シンプルなObservableはユニキャストです。
ユニキャストは単一の相手を指定してストリームが送られます。

それに対して、SubjectはマルチキャストなObservableです。
マルチキャストは複数の相手に対してストリームが送られます。

サブジェクトは、
メソッドnext(v)、error(e)、complete()を持つオブジェクトです。

下記の例では、一つのSubjectに、3つのObserverが使われています。




const { Subject } = require('rxjs');

const subject = new Subject();

subject.subscribe(x=>console.log('observer1---'+x));

subject.subscribe(x=>console.log('observer2---'+x));

subject.subscribe(x=>console.log('observer3---'+x));

subject.next('test');

【結果】
observer1---test
observer2---test
observer3---test