簡體   English   中英

rxjava間隔結合另一個可觀察到的

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM