2016-07-23 9 views
1

私は内部にBehaviorSubjectを保持するクラスを作成しています。対応する「BehaviorObservable」を公開する方法はありますか?それはサブジェクトの値をパイプしますが、Observableインターフェイスの「読み取り専用」のものしか持っていませんか? .next(),および.complete()のメソッドは、内部でのみ使用できます。RxJS 5: `BehaviorObservable`を作成できますか?

Observable.create()を使って被験者の値をパイプするのは単なる問題ではありません。私のAPIのユーザは、公開されたobservableに.subscribe()する必要がありますし、すぐに格納されている現在の値のコールバックを取得します。

私は一緒に何かをハックすることができるかもしれませんが、私はRxJSがすでに行うことができるものを見逃していると確信しています。

答えて

1

Rxjs v4にあった.asObservable()メソッドを探していますか? Rxjs v5でもそれが今の場合は分かりません。

thisによれば、この方法はリリース5.0.0-beta.2に含まれているはずです。機能がない場合、また、私は自分の仕事、この辺りの引用:

あなたがプライベート被験者の購読機能で観察を作成することにより、同じ機能を得ることができます

:詳細について

> const subj = new rx.Subject(); 
> const exposed = new rx.Observable(fn => subj.subscribe(fn)); 

あなたのセマンティクスについては、あなたが見ることができますhere

+0

優秀!はい、 '.asObservable()'メソッド[存在](http://reactivex.io/rxjs/file/es6/Subject.js.html#lineNumber98)、[ユニットテストあり](http:// reactivex.io/rxjs/test-file/spec-js/Subject-spec.js.html#lineNumber308)、[ドキュメントには記載されていません](http://reactivex.io/rxjs/class/es6/Subject .js〜Subject.html)。ありがとう! – mhelvens

関連する問題