.timeout与RxJava观察者

时间:2018-02-14 21:34:22

标签: java android android-studio rx-java

我的订阅者在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();
                }

            });

1 个答案:

答案 0 :(得分:1)

如果发生超时,则onError将为invko TimeoutException,因此您可以使用以下命令检查onError方法中的if:

if( e instanceof TimeoutException)

检查此链接:http://reactivex.io/documentation/operators/timeout.html