|Constructor and Description|
|Modifier and Type||Method and Description|
public static <T> T blockForSingle(Observable<? extends T> observable, long timeout, TimeUnit tu)
Note that when this method is used, only the first item emitted will be returned. The caller needs to make sure that the source
Observable only ever returns a single item (or none). The
BlockingObservable code applies different operators like single, last, first and more, these need to be applied manually.
This code is based on
BlockingObservable.blockForSingle(rx.Observable<? extends T>), but does not wait forever. Instead, it utilizes the internal
CountDownLatch to optimize the timeout case, with less GC and CPU overhead than chaining in an
Observable.timeout(long, TimeUnit) operator.
If an error happens inside the
Observable, it will be raised as an
Exception. If the timeout kicks in, a
TimeoutException nested in a
RuntimeException is thrown to be fully compatible with the
Observable.timeout(long, TimeUnit) behavior.
Copyright © 2015 Couchbase, Inc.