如何在重试时更新源可观察量?
List<String> ids = new ArrayList<>(); // A,B,C
Observable.from(ids)
.retryWhen(errors -> {
return errors
.zipWith(Observable.range(0, 1), (n, i) -> i)
.flatMap(retryCount -> Observable.timer((long) Math.pow(2, retryCount), TimeUnit.MINUTES));
})
.subscribe(....);
现在,而不是传递// A,B,C作为ID,如果我想传递一些其他值.我该怎么做?或者这是否是正确的方法?
最佳答案 使用延迟.这将允许重新计算ID:
Observable.defer(() -> {
List<String> ids = // compute this somehow
return Observable.from(ids);
}).retryWhen(...