我的订阅者在 10 秒后超时。发生超时后,我应该在哪里传递发生的情况?
Service.registerUser(registerUserRequest)
.subscribeOn(Schedulers.io())
.observeOn(Schedulers.io())
.timeout(10, TimeUnit.SECONDS)
.subscribe(new SingleObserver<RegisterUserResponse>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onSuccess(RegisterUserResponse registerUserResponse) {
}
}
@Override
public void onError(Throwable e) {
Log.e(LogTags.API, "Error occurred while registering new user.");
e.printStackTrace();
}
});
最佳答案
如果发生超时,onError 将是 invko TimeoutException
,因此您可以在 onError 方法中使用以下 if 进行检查:
if( e instanceof TimeoutException)
查看此链接:http://reactivex.io/documentation/operators/timeout.html
关于java - .timeout 与 RxJava 观察者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48796614/