【问题标题】:RxJS 5: Can I create a `BehaviorObservable`?RxJS 5:我可以创建一个 `BehaviorObservable` 吗?
【发布时间】:2016-11-27 14:17:04
【问题描述】:

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

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

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

【问题讨论】:

    标签: javascript rxjs observable rxjs5 behaviorsubject


    【解决方案1】:

    您是否正在寻找 .asObservable() 方法 - 它存在于 Rxjs v4.1 中。不知道在 Rxjs v5 中是否仍然如此。

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

    您可以通过使用私有主题的订阅函数创建一个可观察对象来获得相同的功能:

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

    关于主题语义的更多详细信息,您可以查看here

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-10
    • 2020-08-10
    • 1970-01-01
    相关资源
    最近更新 更多