gpt4 book ai didi

java - rxjava 间隔与另一个可观察值相结合

转载 作者:行者123 更新时间:2023-12-02 13:37:28 27 4
gpt4 key购买 nike

我有一个可观察的(很热),它通过系统进程执行操作,并且我希望也运行一个间隔,直到该进程可观察达到 onComplete。

我看到区间运算符:http://reactivex.io/documentation/operators/interval.html

如何将这两者结合起来以获得我想要的行为(特别是,当另一个点击 onComplete 时取消间隔)?

最佳答案

您可以使用 takeUntil() 运算符来取消(取消订阅)间隔运算符,takeUntil()Observable 作为输入,并在输入 Observable 发出一个项目时取消。

剩下的就是将热门 Observable 转换为 Observable,并通过其 onComplete() 发出一个项目,这样我们就可以使用它作为 takeUntil() 的输入,这可以使用 materialize() 运算符来实现,该运算符为每个 Observable 发出 Notification 对象code> 事件(onNext()onError()onCompleted()),与 filter() 结合使用> 仅接受 onCompleted() 事件。

Observable<Notification<Object>> hotOnCompleteObservable = 
hot.materialize()
.filter(notification -> notification.isOnCompleted());

Observable interval = ...
interval.takeUntil(hotOnCompleteObservable);

关于java - rxjava 间隔与另一个可观察值相结合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42910441/

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