【发布时间】:2018-02-08 03:37:05
【问题描述】:
我有一个想要重置的BehaviorSubject - 我的意思是我希望最新的值不可用,就像它刚刚创建一样。
我似乎没有看到可以执行此操作的 API,但我想还有另一种方法可以达到相同的结果吗?
我想要的行为是我需要发出事件,并且我希望订阅者在订阅时获得最新事件 - 如果特定管理器处于“已启动”状态。但是当这个经理被“停止”时,最新的事件不应该是可用的(就像它从一开始就没有启动一样)。
【问题讨论】:
-
有了一个 BehaviorSubject,当它刚被创建时就有下一个可用的值,这就是它的全部意义(以及为什么你必须在创建它时提供该值)。
-
@jonrsharpe 但是您不必在创建它时提供它! reactivex.io/RxJava/2.x/javadoc/io/reactivex/subjects/…
-
很奇怪,它在 RxJS 版本中没有 (github.com/Reactive-Extensions/RxJS/blob/master/doc/api/…) - 如果您不想提供初始值,为什么不使用
ReplaySubject代替呢? -
我的印象是 BehaviorSubject 相当于大小为 1 的 ReplaySubject。但这根本不能回答我的问题 :)
-
我认为答案是:你不能。但我最初也被一个空洞的行为主体的前提弄糊涂了!
标签: stream rx-java reactive-programming rx-java2