gpt4 book ai didi

stream - 如何重置 BehaviorSubject

转载 作者:行者123 更新时间:2023-12-03 13:25:28 24 4
gpt4 key购买 nike

我有一个 BehaviorSubject我想重置 - 我的意思是我希望最新的值不可用,就像它刚刚创建一样。

我似乎没有看到可以执行此操作的 API,但我想还有另一种方法可以实现相同的结果吗?

我想要的行为是我需要发出事件,并且我希望订阅者在订阅时获取最新事件 - 如果特定管理器处于“启动”状态。但是当这个管理器被“停止”时,最新的事件不应该可用(就像它从来没有开始一样)。

最佳答案

我假设您想清除 BehaviorSubject (因为否则不要在上面调用 onComplete)。这不受支持,但您可以通过使用消费者忽略的当前值来实现类似的效果:

public static final Object EMPTY = new Object();

BehaviorSubject<Object> subject = BehaviorSubject.createDefault(EMPTY);

Observable<YourType> obs = subject.filter(v -> v != EMPTY).cast(YourType.class);

obs.subscribe(System.out::println);

// send normal data
subject.onNext(1);
subject.onNext(2);

// clear the subject
subject.onNext(EMPTY);

// this should not print anything
obs.subscribe(System.out::println);

关于stream - 如何重置 BehaviorSubject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45960121/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com