内部で Rx.Subject を使用する関数からオブザーバブルを返そうとしています。もちろん、優れた API と同様に、実装の詳細は消費者から完全に抽象化する必要があります。ただし、Subject.asObservable() を使用すると、任意の消費者がすべてのオブザーバーに新しい値を発行できるように見えます。
例:
const subject = new Rx.Subject();
const observable = subject.asObservable();
observable.source === subject; // true
observable.forEach(value => console.log(value));
observable.source.next('Hello');
// Causes the forEach above to print "Hello"
私の質問は、元のサブジェクトへのアクセスを許可せずに Observable を消費者に公開する組み込みの方法はありますか? そうでない場合、これは明らかに RxJ 側の悪い設計です。
注: これは RxJS v5 用です