【问题标题】:rxjava interval combined with another observablerxjava 区间与另一个 observable 相结合
【发布时间】:2017-03-21 04:26:56
【问题描述】:
【问题讨论】:
标签:
java
rx-java
reactivex
【解决方案1】:
您可以使用takeUntil() 运算符来取消(取消订阅)区间运算符,takeUntil() 将Observable 作为输入,并在输入Observable 发出项目时取消。
剩下的就是将热的Observable 转换为Observable,它发出带有onComplete() 的项目,因此我们可以将其用作takeUntil() 的输入,这可以使用materialize() 运算符,为每个Observable 事件(onNext()、onError()、onCompleted())发出Notification 对象,与filter() 一起仅接收onCompleted() 事件。
Observable<Notification<Object>> hotOnCompleteObservable =
hot.materialize()
.filter(notification -> notification.isOnCompleted());
Observable interval = ...
interval.takeUntil(hotOnCompleteObservable);