RxJava2 Blocking Observable Timeout:如何在超时触发时发出结果?

问题描述:

我有一个Observable,它以JSON字符串的形式发出事件。我想订阅它阻止并获得第一个字符串。不是问题。RxJava2 Blocking Observable Timeout:如何在超时触发时发出结果?

但我想也有一个超时,并在超时时触发一个罐头的JSON字符串。

这里是我现有的代码:

String jsonString = rxEvents.subscribe().toBlocking().first(); 
+0

它不起作用? – klutt

+0

上面的代码有效。它以字符串的形式发出第一个事件的内容。问题是如何在超时触发时添加发出罐装(常量)JSON文本字符串的超时。 – EBarnett

+0

我会换个话。你试图完成什么你想要什么,它是如何工作的? – klutt

只需使用的timeout是需要3个参数的版本:

rxEvents 
    .timeout(1, TimeUnit.SECONDS, Observable.just("fallback")) 
    .toBlocking() 
    .first() 

注意,在你的示例代码不需要subscribe

+0

这个回应是针对我寻求的解决方案,但它不能编译。投诉是类型不匹配(Observable vs Observable )。 – EBarnett

+0

您可以粘贴rxEvents的类型并返回方法的类型 – hgrey

+0

rxEvents是Observable的类型其中包含进入响应对象返回给用户的JSON。在发生超时的情况下,我将模拟一个可用的JSON字符串,该字符串给了我需要指示超时的用户消息。 Observable EBarnett