RxJava2-未通过.blockingFirst()

时间:2019-10-01 17:20:52

标签: java android rx-java rx-java2

我正在尝试从Observable(BehaviorSubject.create())获取值

当我运行locationObservable.subscribe {}时,我会在几秒钟内收到结果。但是使用

        try {
            it.locationObservable
                    .timeout(10, TimeUnit.SECONDS)
                    .blockingFirst()
        } catch (e: Exception) {
        }

无论超时与否,都不会发生。我只是收到“ java.util.concurrent.TimeoutException:源在10秒钟内未发出事件信号并已终止”。我试过blockingFirst(),blockingLast()和blockingForEach()。我是否以某种方式阻塞了可以为我提供价值的线程?

编辑:将其从主线程中移出后,它开始工作。谢谢大家的投入。

2 个答案:

答案 0 :(得分:0)

操作员.observeOn(Schedulers.io())将排队所有要在Android应用程序的IO线程中发射的发射项目。

答案 1 :(得分:0)

尝试以下操作:

  .timeout(10, TimeUnit.SECONDS, Observable.just("fallback"))