EBarnett
EBarnett

Reputation: 71

RxJava2 Blocking Observable Timeout: How do I emit a result when timeout fires?

I have an Observable that emits events in the form of JSON strings. I want to subscribe to it blocking and get the first string. Not a problem.

But I would like to also have a timeout and emit a canned JSON string when the timeout fires.

Here is my existing code:

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

Upvotes: 6

Views: 4845

Answers (1)

hgrey
hgrey

Reputation: 3093

Just use version of timeout that takes 3 parameters:

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

Note that in your sample code subscribe is not needed.

Upvotes: 8

Related Questions