2016-08-05 20 views
13

以前rxjs5でBehaviorSubjectの現在の値を取得します。簡単な方法は、呼び出されたBehaviorSubjectのメソッドがあった<strong>rxjs4</strong>に

rxjs5にこのメソッドは存在しません。

だから私はBehaviorSubjectの値を取得するために見つけた唯一の解決策をした

let value; 
myBehaviorSubject.take(1).subscribe((e) => value = e); 

このコードは同期的に実行します(私は理由を正確に理解していないが、それはありません...)と値を取得。それは動作しますが、getValue()が存在した場合にはそれができるほどきれいではありません。

let value = myBehaviorSubject.getValue(); 

getValue()rxjs5で削除された理由と、この問題へのクリーンな解決策は何ですか?

+9

'BehaviorSubject'インターフェースが簡略化されました。ゲッターは単に' .value'と呼ばれています。 –

+0

@arturgrzesiak現在のドキュメントでこの.valueへの参照が見つかりません: http://reactivex.io/rxjs/class/es6/BehaviorSubject.js~BehaviorSubject.html – Clement

+2

docsは最新ではないかもしれませんが、それでも動作します。 http://reactivex.io/rxjs/test-file/spec-js/subjects/BehaviorSubject-spec.js.html#lineNumber47 –

答えて

23

コメントでartur grzesiakが指摘したように、BehaviorSubjectインターフェイスがクリーンアップされ、ゲッターは今やちょうど.valueになりました。

私はほとんどの場合、元の質問にコメントを読まなかったので、これを答えとして追加したいと思い、正解を逃してしまいました。

関連する問題