2016-04-07 61 views
2

我正試圖允許在下一個和錯誤調用上的無限流。RxJava允許多個onError調用

下面的代碼使用retry()方法,我認爲這將允許我看到所有3個調用onNext,但是在錯誤沒有其他被調用之後。

public class TesterClass { 
​ 
    public static void main(final String[] args) { 
     final PublishSubject<Void> publishSubject = PublishSubject.create(); 
​ 
     publishSubject 
       .retry() 
       .subscribe(
         aVoid -> System.out.println("onNext"), 
         Throwable::printStackTrace, 
         () -> System.out.println("onComplete") 
       ); 
​ 
     publishSubject.onNext(null); 
     publishSubject.onNext(null); 
     publishSubject.onError(new Exception("onError")); 
     publishSubject.onNext(null); 
    } 
} 

我的理想使用案例將允許我訂閱並對所有錯誤和來自主題/可觀察到的所有下一個調用採取行動。

我也試圖實現一個解決方案,使用自定義Operator如圖here但我沒有這個運氣。

是否有可能實現我要做的事情,或者是否RxJava的onError設計打破了鏈條完全阻止了這個想法。

回答

5

正如此線程中提到的(Rxjava discussion)這不能完成。

如果錯誤不應終止流,則通過OnNext將錯誤包裝成消息。