RxJava2 阻塞可观察超时:超时触发时如何发出结果?

EBa*_*ett 5 blocking observable rx-java rx-java2

我有一个 Observable,它以 JSON 字符串的形式发出事件。我想订阅它阻塞并获取第一个字符串。不是问题。

但我也想超时并在超时触发时发出一个罐装 JSON 字符串。

这是我现有的代码:

String jsonString = rxEvents.subscribe().toBlocking().first();
Run Code Online (Sandbox Code Playgroud)

hgr*_*rey 7

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

rxEvents
  .timeout(1, TimeUnit.SECONDS, Observable.just("fallback"))
  .toBlocking()
  .first()
Run Code Online (Sandbox Code Playgroud)

请注意,在您的示例代码subscribe中不需要。