我试图通过超时来限制可观察的生命:
Const
我想区分以下结果:
我可以在部分onNext和onError中处理案例2和3没有问题,但是如何通过超时检测observable是否已完成?
还有一件事:虽然在我的代码中调用了obeserver.onCompleted(),但我从来没有进入块onComplete。为什么呢?
答案 0 :(得分:1)
如果发生超时,则会在计算线程上发出TimeoutException
,其中throw throwable
最终被忽略,而您的主线程不会被忽略,并且无法看到它。您可以在超时后添加toBlocking
,这样任何异常都将在同一个线程上结束:
firstStep
.timeout(1 second)
.toBlocking()
.subscribe(
item => println(item),
throwable => println(throwable),
() => println("complete")
)
答案 1 :(得分:0)
确实抛出了TimeoutException。问题是由使用错误的库引起的。我有" com.netflix.rxjava"在我的依赖项中,而不是" io.reactivex"