无论错误或成功如何,我都希望在XXXX之前将订阅延迟发送。使用以下代码,延迟仅适用于成功方案。请帮助我,以便它可以始终等待XXXX时间。
serviceRepository.getService()
.retry(0)
.map(value -> {
total = XXXX;
return value;
})
.observeOn(schedulerProvider.mainThread())
.delaySubscription(total, TimeUnit.MILLISECONDS)
.subscribeWith(return new DisposableSingleObserver<ServiceResponse>() {
@Override
public void onSuccess(ServiceResponse serviceResponse) {
}
@Override
public void onError(Throwable e) {
}
});
答案 0 :(得分:1)
在delaySubscription
调用之前将retry
移动。 RxJava运算符向上运行,因此您的延迟适用于重试的原始订阅,但在错误情况下不适用其他订阅,因为重试仅知道上游存在什么。