RxJava2 Ошибка выдачи после повтора при исчерпании - PullRequest
0 голосов
/ 25 октября 2018

После просмотра нескольких постов у меня есть стратегия повторных звонков, как показано ниже.если один из сетевых вызовов в zip завершится неудачно, то вызов будет повторен три раза, и после последней попытки я выполню Observable.error().Но цепочка вызовов не попадает в блок doOnError.Я также попытался подписаться на результат .subscribe(onNext -> {}, onError -> {}, но блок onError все еще не запущен.Что я тут не так делаю?

Observable.zip(
        observable1,
        observable2,
        observable3,
        (int a, int b, int c) ->
            log.info("result {}", a + b + c)
    )
        .retryWhen(errors -> errors.zipWith(Observable.range(1, 3), (error, i) -> {
              if (i++ < 3) {
                return Observable.just(i);
              }
              return Observable.error(error);
            }
        ))
        .doOnError(error -> {
          log.error("Failed network call after retries");         
        })
        .subscribe();
...