- Notifications
You must be signed in to change notification settings - Fork7.6k
Blocking Observable Operators
akarnokd edited this pageJun 26, 2020 ·50 revisions
This section explains theBlockingObservable subclass. A Blocking Observable extends the ordinary Observable class by providing a set of operators on the items emitted by the Observable that block.
To transform anObservable into aBlockingObservable, use theObservable.toBlocking( ) method or theBlockingObservable.from( ) method.
forEach( )— invoke a function on each item emitted by the Observable; block until the Observable completesfirst( )— block until the Observable emits an item, then return the first item emitted by the ObservablefirstOrDefault( )— block until the Observable emits an item or completes, then return the first item emitted by the Observable or a default item if the Observable did not emit an itemlast( )— block until the Observable completes, then return the last item emitted by the ObservablelastOrDefault( )— block until the Observable completes, then return the last item emitted by the Observable or a default item if there is no last itemmostRecent( )— returns an iterable that always returns the item most recently emitted by the Observablenext( )— returns an iterable that blocks until the Observable emits another item, then returns that itemlatest( )— returns an iterable that blocks until or unless the Observable emits an item that has not been returned by the iterable, then returns that itemsingle( )— if the Observable completes after emitting a single item, return that item, otherwise throw an exceptionsingleOrDefault( )— if the Observable completes after emitting a single item, return that item, otherwise return a default itemtoFuture( )— convert the Observable into a FuturetoIterable( )— convert the sequence emitted by the Observable into an IterablegetIterator( )— convert the sequence emitted by the Observable into an Iterator
This documentation accompanies its explanations with a modified form of "marble diagrams." Here is how these marble diagrams represent Blocking Observables:

- javadoc:
BlockingObservable - javadoc:
toBlocking() - javadoc:
BlockingObservable.from()
| operator | result when it acts on | equivalent in Rx.NET | ||
|---|---|---|---|---|
| Observable that emits multiple items | Observable that emits one item | Observable that emits no items | ||
Observable.first | the first item | the single item | NoSuchElement | firstAsync |
BlockingObservable.first | the first item | the single item | NoSuchElement | first |
Observable.firstOrDefault | the first item | the single item | the default item | firstOrDefaultAsync |
BlockingObservable.firstOrDefault | the first item | the single item | the default item | firstOrDefault |
Observable.last | the last item | the single item | NoSuchElement | lastAsync |
BlockingObservable.last | the last item | the single item | NoSuchElement | last |
Observable.lastOrDefault | the last item | the single item | the default item | lastOrDefaultAsync |
BlockingObservable.lastOrDefault | the last item | the single item | the default item | lastOrDefault |
Observable.single | Illegal Argument | the single item | NoSuchElement | singleAsync |
BlockingObservable.single | Illegal Argument | the single item | NoSuchElement | single |
Observable.singleOrDefault | Illegal Argument | the single item | the default item | singleOrDefaultAsync |
BlockingObservable.singleOrDefault | Illegal Argument | the single item | the default item | singleOrDefault |
Copyright (c) 2016-present, RxJava Contributors.
Twitter @RxJava |Gitter @RxJava