Android 如何延迟RxJava订阅的成功和错误?
无论错误或成功,我都希望在XXXX时间之前延迟发送订阅。对于以下代码,延迟仅适用于成功场景。请帮助我,这样它就可以一直等待XXXX时间Android 如何延迟RxJava订阅的成功和错误?,android,rx-java2,Android,Rx Java2,无论错误或成功,我都希望在XXXX时间之前延迟发送订阅。对于以下代码,延迟仅适用于成功场景。请帮助我,这样它就可以一直等待XXXX时间 serviceRepository.getService() .retry(0) .map(value -> { total = 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) {
}
});
在重试调用之前移动延迟订阅。RxJava操作符向上运行,因此您的延迟适用于重试的原始订阅,但在错误情况下不适用于附加订阅,因为重试只知道上游存在什么。按时间延迟订阅本身永远不会失败。我不知道你想在这里实现什么。此外,retry0将永远不会重试。如果出现异常,则不会触发map的回调。Anatolii如果我想延迟成功和错误,有什么替代方案。XXXX是动态的,所以我需要一些与MAP等效的东西。谢谢你的回复。但是注意到map不会被错误调用,但我想调用map,因为I XXX是动态的,我根据网络调用所花费的时间来计算。如果网络调用所花费的时间更长,则XXXX的值将更短