私はretryWhen
を理解するのに苦労しています。RxJava - retryWhen - 再試行可否エラー
私のユースケースは以下の通りである。私はエラーが私が実行したいが発生した場合
- 異なる場合は
- の間で(も異なる結果を有する)観測可能この2番目の観測可能な成功は、元の再実行したい 一度再試行中にエラーが発生した場合、私は追加の再試行をしたくない
- 観察できるこの第二が成功しなかった場合、私はメインに観察
私はこれをどのように行うのですかの加入者に エラーを伝播したいですか?
ありがとうございました!
私がこれまで試したどのようなUPDATE
:
public class RetryTest {
private int i = 0;
@Test
public void testRetry() {
Observable
.create((Observable.OnSubscribe<String>) subscriber -> {
if (i == 0) {
i++;
throw new RuntimeException("Main error");
} else {
subscriber.onNext("Main success");
subscriber.onCompleted();
}
})
.retryWhen(observable -> {
// HERE IS WHERE I NEED HELP, i need something like:
Observable.just("Error handling observable")
.subscribe(new Subscriber<String>() {
@Override
public void onCompleted() {
// Do retry ONCE
}
@Override
public void onError(Throwable e) {
// Propagate error
}
@Override
public void onNext(String s) {
// Nothing to do here
}
});
})
.subscribe(new Subscriber<String>() {
@Override
public void onCompleted() {
System.out.println("onCompleted");
}
@Override
public void onError(Throwable e) {
System.out.println("onError: " + e);
}
@Override
public void onNext(String s) {
System.out.println("onNext: " + s);
}
});
}
}
何を試しましたか? (私が意味する最小限の例を共有して、あなたがそれを持っている問題を説明してください) – Ivan
私が試したものの例と、どこに止まっているのかの例を追加しました。 – JDC