2

我正在为我的应用创建一个类,该类保留一个内部BehaviorSubject. 有没有办法可以公开相应的“ BehaviorObservable”,它通过主题的值进行管道传输,但只有接口的“只读”内容Observable?,.next()和方法应该.error().complete()在内部可用。

这不仅仅是(我相信)使用Observable.create()管道传递主题值的问题。我的 API 的用户应该.subscribe()对暴露的 observable,然后立即获取存储的当前值的回调。

我也许可以一起破解一些东西,但我确信我只是错过了 RxJS 已经可以做的一些事情。

4

1 回答 1

1

您是否有机会寻找.asObservable()Rxjs v4 中存在的方法?不知道在 Rxjs v5 中是否仍然如此。

据此,方法应该已包含在版本 5.0.0-beta.2 中。如果功能不存在,我也在这里引用他们的解决方法:

您可以通过使用私有主题的 subscribe 函数创建一个 observable 来获得相同的功能:

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

有关主题语义的更多详细信息,您可以查看此处

于 2016-07-23T23:57:15.573 回答