java - .timeout 与 RxJava 观察者

标签 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();
                }

            });

最佳答案

如果发生超时,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/

相关文章:

android - OutputStreamWriter 不追加

java - 尝试获取 Activity 的 DefaultSharedPreferences 时出现 NullPointerException

android-studio - 无法在Ubuntu 14.04 64位.android/repositories.cfg中安装Android Studio

java - 在 Android Studio 上使用 JNA 加载 *.so

java - 从 XML 文件配置 JNDI InitialContext

java - 如何禁用 openbravo 中的按钮?

java - JDBC 连接和语句类

java - 将我的树对象写入java中的文件中?

java - JSOUP 如何使用 HTTPS 自签名认证登录

android - 如何从约束布局编辑器中设置 "layout_marginLeft(/Right)"?