![](/img/trans.png)
[英]How to Make an Observable that Emits Combined Items Emitted by Another Observable in RxJava 2?
[英]rxjava interval combined with another observable
我有一個可觀察到的(很熱)的東西正在通過系統進程運行,並且我也想運行一個間隔,直到該過程可觀察到的命中onComplete為止。
我看到了間隔運算符: http : //reactivex.io/documentation/operators/interval.html
我如何才能將這兩者結合起來以獲得自己想要的行為(特別是當另一個擊中onComplete時取消該間隔)?
您可以使用takeUntil()
運算符來取消(取消訂閱)區間運算符, takeUntil()
將Observable
用作輸入,並在輸入Observable
發出項目時取消。
剩下的就是將熱的Observable
轉換為帶有onComplete()
發出項的Observable
,因此我們可以將其用作takeUntil()
輸入,這可以通過使用materialize()
運算符來實現,該運算符為每個Observable
發出Notification
對象事件( onNext()
, onError()
, onCompleted()
)與filter()
一起僅接受onCompleted()
事件。
Observable<Notification<Object>> hotOnCompleteObservable =
hot.materialize()
.filter(notification -> notification.isOnCompleted());
Observable interval = ...
interval.takeUntil(hotOnCompleteObservable);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.