2016-07-23 24 views
1

我正在爲我的應用創建一個保持內部BehaviorSubject的類。有沒有一種方法可以公開相應的'BehaviorObservable',它通過主題的值管道,但只有Observable接口的「只讀」內容? .next(),.error().complete()方法應該只能在內部使用。RxJS 5:我可以創建一個`BehaviorObservable`嗎?

這不僅僅是一個(我相信)使用Observable.create()管道通過主題的值。我的API的用戶應該.subscribe()暴露observable,然後立即得到存儲的當前值的回調。

我可能會一起破解一些東西,但我確信我只是錯過了RxJS已經可以做的事情。

回答

1

您是否有機會尋找.asObservable()方法 - 它存在於Rxjs v4中。不知道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()'方法[exists](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

相關問題