T
- the type of the items emitted by the Observablepublic classObservable<T>extends java.lang.Object
This class provides methods for subscribing to the Observable as well as delegate methods to the various Observers.
The documentation for this class makes use of marble diagrams. The following legend explains these diagrams:
For more information see theReactiveX documentation.
Modifier and Type | Class and Description |
---|---|
static interface | Observable.OnSubscribe<T> Invoked when Observable.subscribe is called. |
static interface | Observable.Operator<R,T> Operator function for lifting into an Observable. |
static interface | Observable.Transformer<T,R> Function that receives the current Observable and should return another Observable, possibly with given element type, in exchange that will be subscribed to by the downstream operators and subscribers. |
Modifier | Constructor and Description |
---|---|
protected | Observable(Observable.OnSubscribe<T> f) Creates an Observable with a Function to execute when it is subscribed to. |
Modifier and Type | Method and Description |
---|---|
Observable<java.lang.Boolean> | all(Func1<? superT,java.lang.Boolean> predicate) Returns an Observable that emits a Boolean that indicates whether all of the items emitted by the source Observable satisfy a condition. |
static <T> Observable<T> | amb(java.lang.Iterable<? extendsObservable<? extends T>> sources) Mirrors the one Observable in an Iterable of several Observables that first either emits an item or sends a termination notification. |
static <T> Observable<T> | amb(Observable<? extends T> o1,Observable<? extends T> o2) Given two Observables, mirrors the one that first either emits an item or sends a termination notification. |
static <T> Observable<T> | amb(Observable<? extends T> o1,Observable<? extends T> o2,Observable<? extends T> o3) Given three Observables, mirrors the one that first either emits an item or sends a termination notification. |
static <T> Observable<T> | amb(Observable<? extends T> o1,Observable<? extends T> o2,Observable<? extends T> o3,Observable<? extends T> o4) Given four Observables, mirrors the one that first either emits an item or sends a termination notification. |
static <T> Observable<T> | amb(Observable<? extends T> o1,Observable<? extends T> o2,Observable<? extends T> o3,Observable<? extends T> o4,Observable<? extends T> o5) Given five Observables, mirrors the one that first either emits an item or sends a termination notification. |
static <T> Observable<T> | amb(Observable<? extends T> o1,Observable<? extends T> o2,Observable<? extends T> o3,Observable<? extends T> o4,Observable<? extends T> o5,Observable<? extends T> o6) Given six Observables, mirrors the one that first either emits an item or sends a termination notification. |
static <T> Observable<T> | amb(Observable<? extends T> o1,Observable<? extends T> o2,Observable<? extends T> o3,Observable<? extends T> o4,Observable<? extends T> o5,Observable<? extends T> o6,Observable<? extends T> o7) Given seven Observables, mirrors the one that first either emits an item or sends a termination notification. |
static <T> Observable<T> | amb(Observable<? extends T> o1,Observable<? extends T> o2,Observable<? extends T> o3,Observable<? extends T> o4,Observable<? extends T> o5,Observable<? extends T> o6,Observable<? extends T> o7,Observable<? extends T> o8) Given eight Observables, mirrors the one that first either emits an item or sends a termination notification. |
static <T> Observable<T> | amb(Observable<? extends T> o1,Observable<? extends T> o2,Observable<? extends T> o3,Observable<? extends T> o4,Observable<? extends T> o5,Observable<? extends T> o6,Observable<? extends T> o7,Observable<? extends T> o8,Observable<? extends T> o9) Given nine Observables, mirrors the one that first either emits an item or sends a termination notification. |
Observable<T> | ambWith(Observable<? extendsT> t1) Mirrors the Observable (current or provided) that first either emits an item or sends a termination notification. |
Observable<T> | asObservable() Portrays a object of an Observable subclass as a simple Observable object. |
<TClosing> Observable<java.util.List<T>> | buffer(Func0<? extendsObservable<? extends TClosing>> bufferClosingSelector) Returns an Observable that emits buffers of items it collects from the source Observable. |
Observable<java.util.List<T>> | buffer(int count) Returns an Observable that emits buffers of items it collects from the source Observable. |
Observable<java.util.List<T>> | buffer(int count, int skip) Returns an Observable that emits buffers of items it collects from the source Observable. |
Observable<java.util.List<T>> | buffer(long timespan, long timeshift, java.util.concurrent.TimeUnit unit) Returns an Observable that emits buffers of items it collects from the source Observable. |
Observable<java.util.List<T>> | buffer(long timespan, long timeshift, java.util.concurrent.TimeUnit unit,Scheduler scheduler) Returns an Observable that emits buffers of items it collects from the source Observable. |
Observable<java.util.List<T>> | buffer(long timespan, java.util.concurrent.TimeUnit unit) Returns an Observable that emits buffers of items it collects from the source Observable. |
Observable<java.util.List<T>> | buffer(long timespan, java.util.concurrent.TimeUnit unit, int count) Returns an Observable that emits buffers of items it collects from the source Observable. |
Observable<java.util.List<T>> | buffer(long timespan, java.util.concurrent.TimeUnit unit, int count,Scheduler scheduler) Returns an Observable that emits buffers of items it collects from the source Observable. |
Observable<java.util.List<T>> | buffer(long timespan, java.util.concurrent.TimeUnit unit,Scheduler scheduler) Returns an Observable that emits buffers of items it collects from the source Observable. |
<TOpening,TClosing> | buffer(Observable<? extends TOpening> bufferOpenings,Func1<? super TOpening,? extendsObservable<? extends TClosing>> bufferClosingSelector) Returns an Observable that emits buffers of items it collects from the source Observable. |
<B> Observable<java.util.List<T>> | buffer(Observable<B> boundary) Returns an Observable that emits non-overlapping buffered items from the source Observable each time the specified boundary Observable emits an item. |
<B> Observable<java.util.List<T>> | buffer(Observable<B> boundary, int initialCapacity) Returns an Observable that emits non-overlapping buffered items from the source Observable each time the specified boundary Observable emits an item. |
Observable<T> | cache() Returns an Observable that subscribes to this Observable lazily, caches all of its events and replays them, in the same order as received, to all the downstream subscribers. |
Observable<T> | cache(int initialCapacity) Deprecated. Use cacheWithInitialCapacity(int) instead. |
Observable<T> | cacheWithInitialCapacity(int initialCapacity) Returns an Observable that subscribes to this Observable lazily, caches all of its events and replays them, in the same order as received, to all the downstream subscribers. |
<R> Observable<R> | cast(java.lang.Class<R> klass) Returns an Observable that emits the items emitted by the source Observable, converted to the specified type. |
<R> Observable<R> | collect(Func0<R> stateFactory,Action2<R,? superT> collector) Collects items emitted by the source Observable into a single mutable data structure and returns an Observable that emits this structure. |
static <T,R> Observable<R> | combineLatest(java.lang.Iterable<? extendsObservable<? extends T>> sources,FuncN<? extends R> combineFunction) Combines a collection of source Observables by emitting an item that aggregates the latest values of each of the source Observables each time an item is received from any of the source Observables, where this aggregation is defined by a specified function. |
static <T,R> Observable<R> | combineLatest(java.util.List<? extendsObservable<? extends T>> sources,FuncN<? extends R> combineFunction) Combines a list of source Observables by emitting an item that aggregates the latest values of each of the source Observables each time an item is received from any of the source Observables, where this aggregation is defined by a specified function. |
static <T1,T2,R> Observable<R> | combineLatest(Observable<? extends T1> o1,Observable<? extends T2> o2,Func2<? super T1,? super T2,? extends R> combineFunction) Combines two source Observables by emitting an item that aggregates the latest values of each of the source Observables each time an item is received from either of the source Observables, where this aggregation is defined by a specified function. |
static <T1,T2,T3,R> | combineLatest(Observable<? extends T1> o1,Observable<? extends T2> o2,Observable<? extends T3> o3,Func3<? super T1,? super T2,? super T3,? extends R> combineFunction) Combines three source Observables by emitting an item that aggregates the latest values of each of the source Observables each time an item is received from any of the source Observables, where this aggregation is defined by a specified function. |
static <T1,T2,T3,T4,R> | combineLatest(Observable<? extends T1> o1,Observable<? extends T2> o2,Observable<? extends T3> o3,Observable<? extends T4> o4,Func4<? super T1,? super T2,? super T3,? super T4,? extends R> combineFunction) Combines four source Observables by emitting an item that aggregates the latest values of each of the source Observables each time an item is received from any of the source Observables, where this aggregation is defined by a specified function. |
static <T1,T2,T3,T4,T5,R> | combineLatest(Observable<? extends T1> o1,Observable<? extends T2> o2,Observable<? extends T3> o3,Observable<? extends T4> o4,Observable<? extends T5> o5,Func5<? super T1,? super T2,? super T3,? super T4,? super T5,? extends R> combineFunction) Combines five source Observables by emitting an item that aggregates the latest values of each of the source Observables each time an item is received from any of the source Observables, where this aggregation is defined by a specified function. |
static <T1,T2,T3,T4,T5,T6,R> | combineLatest(Observable<? extends T1> o1,Observable<? extends T2> o2,Observable<? extends T3> o3,Observable<? extends T4> o4,Observable<? extends T5> o5,Observable<? extends T6> o6,Func6<? super T1,? super T2,? super T3,? super T4,? super T5,? super T6,? extends R> combineFunction) Combines six source Observables by emitting an item that aggregates the latest values of each of the source Observables each time an item is received from any of the source Observables, where this aggregation is defined by a specified function. |
static <T1,T2,T3,T4,T5,T6,T7,R> | combineLatest(Observable<? extends T1> o1,Observable<? extends T2> o2,Observable<? extends T3> o3,Observable<? extends T4> o4,Observable<? extends T5> o5,Observable<? extends T6> o6,Observable<? extends T7> o7,Func7<? super T1,? super T2,? super T3,? super T4,? super T5,? super T6,? super T7,? extends R> combineFunction) Combines seven source Observables by emitting an item that aggregates the latest values of each of the source Observables each time an item is received from any of the source Observables, where this aggregation is defined by a specified function. |
static <T1,T2,T3,T4,T5,T6,T7,T8,R> | combineLatest(Observable<? extends T1> o1,Observable<? extends T2> o2,Observable<? extends T3> o3,Observable<? extends T4> o4,Observable<? extends T5> o5,Observable<? extends T6> o6,Observable<? extends T7> o7,Observable<? extends T8> o8,Func8<? super T1,? super T2,? super T3,? super T4,? super T5,? super T6,? super T7,? super T8,? extends R> combineFunction) Combines eight source Observables by emitting an item that aggregates the latest values of each of the source Observables each time an item is received from any of the source Observables, where this aggregation is defined by a specified function. |
static <T1,T2,T3,T4,T5,T6,T7,T8,T9,R> | combineLatest(Observable<? extends T1> o1,Observable<? extends T2> o2,Observable<? extends T3> o3,Observable<? extends T4> o4,Observable<? extends T5> o5,Observable<? extends T6> o6,Observable<? extends T7> o7,Observable<? extends T8> o8,Observable<? extends T9> o9,Func9<? super T1,? super T2,? super T3,? super T4,? super T5,? super T6,? super T7,? super T8,? super T9,? extends R> combineFunction) Combines nine source Observables by emitting an item that aggregates the latest values of each of the source Observables each time an item is received from any of the source Observables, where this aggregation is defined by a specified function. |
static <T,R> Observable<R> | combineLatestDelayError(java.lang.Iterable<? extendsObservable<? extends T>> sources,FuncN<? extends R> combineFunction) Combines a collection of source Observables by emitting an item that aggregates the latest values of each of the source Observables each time an item is received from any of the source Observables, where this aggregation is defined by a specified function and delays any error from the sources until all source Observables terminate. |
<R> Observable<R> | compose(Observable.Transformer<? superT,? extends R> transformer) Transform an Observable by applying a particular Transformer function to it. |
static <T> Observable<T> | concat(java.lang.Iterable<? extendsObservable<? extends T>> sequences) Flattens an Iterable of Observables into one Observable, one after the other, without interleaving them. |
static <T> Observable<T> | concat(Observable<? extendsObservable<? extends T>> observables) Returns an Observable that emits the items emitted by each of the Observables emitted by the source Observable, one after the other, without interleaving them. |
static <T> Observable<T> | concat(Observable<? extends T> t1,Observable<? extends T> t2) Returns an Observable that emits the items emitted by two Observables, one after the other, without interleaving them. |
static <T> Observable<T> | concat(Observable<? extends T> t1,Observable<? extends T> t2,Observable<? extends T> t3) Returns an Observable that emits the items emitted by three Observables, one after the other, without interleaving them. |
static <T> Observable<T> | concat(Observable<? extends T> t1,Observable<? extends T> t2,Observable<? extends T> t3,Observable<? extends T> t4) Returns an Observable that emits the items emitted by four Observables, one after the other, without interleaving them. |
static <T> Observable<T> | concat(Observable<? extends T> t1,Observable<? extends T> t2,Observable<? extends T> t3,Observable<? extends T> t4,Observable<? extends T> t5) Returns an Observable that emits the items emitted by five Observables, one after the other, without interleaving them. |
static <T> Observable<T> | concat(Observable<? extends T> t1,Observable<? extends T> t2,Observable<? extends T> t3,Observable<? extends T> t4,Observable<? extends T> t5,Observable<? extends T> t6) Returns an Observable that emits the items emitted by six Observables, one after the other, without interleaving them. |
static <T> Observable<T> | concat(Observable<? extends T> t1,Observable<? extends T> t2,Observable<? extends T> t3,Observable<? extends T> t4,Observable<? extends T> t5,Observable<? extends T> t6,Observable<? extends T> t7) Returns an Observable that emits the items emitted by seven Observables, one after the other, without interleaving them. |
static <T> Observable<T> | concat(Observable<? extends T> t1,Observable<? extends T> t2,Observable<? extends T> t3,Observable<? extends T> t4,Observable<? extends T> t5,Observable<? extends T> t6,Observable<? extends T> t7,Observable<? extends T> t8) Returns an Observable that emits the items emitted by eight Observables, one after the other, without interleaving them. |
static <T> Observable<T> | concat(Observable<? extends T> t1,Observable<? extends T> t2,Observable<? extends T> t3,Observable<? extends T> t4,Observable<? extends T> t5,Observable<? extends T> t6,Observable<? extends T> t7,Observable<? extends T> t8,Observable<? extends T> t9) Returns an Observable that emits the items emitted by nine Observables, one after the other, without interleaving them. |
static <T> Observable<T> | concatDelayError(java.lang.Iterable<? extendsObservable<? extends T>> sources) Concatenates the Iterable sequence of Observables into a single sequence by subscribing to each Observable, one after the other, one at a time and delays any errors till the all inner Observables terminate. |
static <T> Observable<T> | concatDelayError(Observable<? extendsObservable<? extends T>> sources) Concatenates the Observable sequence of Observables into a single sequence by subscribing to each inner Observable, one after the other, one at a time and delays any errors till the all inner and the outer Observables terminate. |
static <T> Observable<T> | concatDelayError(Observable<? extends T> t1,Observable<? extends T> t2) Returns an Observable that emits the items emitted by two Observables, one after the other, without interleaving them, and delays any errors till all Observables terminate. |
static <T> Observable<T> | concatDelayError(Observable<? extends T> t1,Observable<? extends T> t2,Observable<? extends T> t3) Returns an Observable that emits the items emitted by three Observables, one after the other, without interleaving them, and delays any errors till all Observables terminate. |
static <T> Observable<T> | concatDelayError(Observable<? extends T> t1,Observable<? extends T> t2,Observable<? extends T> t3,Observable<? extends T> t4) Returns an Observable that emits the items emitted by four Observables, one after the other, without interleaving them, and delays any errors till all Observables terminate. |
static <T> Observable<T> | concatDelayError(Observable<? extends T> t1,Observable<? extends T> t2,Observable<? extends T> t3,Observable<? extends T> t4,Observable<? extends T> t5) Returns an Observable that emits the items emitted by five Observables, one after the other, without interleaving them, and delays any errors till all Observables terminate. |
static <T> Observable<T> | concatDelayError(Observable<? extends T> t1,Observable<? extends T> t2,Observable<? extends T> t3,Observable<? extends T> t4,Observable<? extends T> t5,Observable<? extends T> t6) Returns an Observable that emits the items emitted by six Observables, one after the other, without interleaving them, and delays any errors till all Observables terminate. |
static <T> Observable<T> | concatDelayError(Observable<? extends T> t1,Observable<? extends T> t2,Observable<? extends T> t3,Observable<? extends T> t4,Observable<? extends T> t5,Observable<? extends T> t6,Observable<? extends T> t7) Returns an Observable that emits the items emitted by seven Observables, one after the other, without interleaving them, and delays any errors till all Observables terminate. |
static <T> Observable<T> | concatDelayError(Observable<? extends T> t1,Observable<? extends T> t2,Observable<? extends T> t3,Observable<? extends T> t4,Observable<? extends T> t5,Observable<? extends T> t6,Observable<? extends T> t7,Observable<? extends T> t8) Returns an Observable that emits the items emitted by eight Observables, one after the other, without interleaving them, and delays any errors till all Observables terminate. |
static <T> Observable<T> | concatDelayError(Observable<? extends T> t1,Observable<? extends T> t2,Observable<? extends T> t3,Observable<? extends T> t4,Observable<? extends T> t5,Observable<? extends T> t6,Observable<? extends T> t7,Observable<? extends T> t8,Observable<? extends T> t9) Returns an Observable that emits the items emitted by nine Observables, one after the other, without interleaving them, and delays any errors till all Observables terminate. |
static <T> Observable<T> | concatEager(java.lang.Iterable<? extendsObservable<? extends T>> sources) Concatenates a sequence of Observables eagerly into a single stream of values. |
static <T> Observable<T> | concatEager(java.lang.Iterable<? extendsObservable<? extends T>> sources, int capacityHint) Concatenates a sequence of Observables eagerly into a single stream of values. |
static <T> Observable<T> | concatEager(Observable<? extendsObservable<? extends T>> sources) Concatenates an Observable sequence of Observables eagerly into a single stream of values. |
static <T> Observable<T> | concatEager(Observable<? extendsObservable<? extends T>> sources, int capacityHint) Concatenates an Observable sequence of Observables eagerly into a single stream of values. |
static <T> Observable<T> | concatEager(Observable<? extends T> o1,Observable<? extends T> o2) Concatenates two source Observables eagerly into a single stream of values. |
static <T> Observable<T> | concatEager(Observable<? extends T> o1,Observable<? extends T> o2,Observable<? extends T> o3) Concatenates three sources eagerly into a single stream of values. |
static <T> Observable<T> | concatEager(Observable<? extends T> o1,Observable<? extends T> o2,Observable<? extends T> o3,Observable<? extends T> o4) Concatenates four sources eagerly into a single stream of values. |
static <T> Observable<T> | concatEager(Observable<? extends T> o1,Observable<? extends T> o2,Observable<? extends T> o3,Observable<? extends T> o4,Observable<? extends T> o5) Concatenates five sources eagerly into a single stream of values. |
static <T> Observable<T> | concatEager(Observable<? extends T> o1,Observable<? extends T> o2,Observable<? extends T> o3,Observable<? extends T> o4,Observable<? extends T> o5,Observable<? extends T> o6) Concatenates six sources eagerly into a single stream of values. |
static <T> Observable<T> | concatEager(Observable<? extends T> o1,Observable<? extends T> o2,Observable<? extends T> o3,Observable<? extends T> o4,Observable<? extends T> o5,Observable<? extends T> o6,Observable<? extends T> o7) Concatenates seven sources eagerly into a single stream of values. |
static <T> Observable<T> | concatEager(Observable<? extends T> o1,Observable<? extends T> o2,Observable<? extends T> o3,Observable<? extends T> o4,Observable<? extends T> o5,Observable<? extends T> o6,Observable<? extends T> o7,Observable<? extends T> o8) Concatenates eight sources eagerly into a single stream of values. |
static <T> Observable<T> | concatEager(Observable<? extends T> o1,Observable<? extends T> o2,Observable<? extends T> o3,Observable<? extends T> o4,Observable<? extends T> o5,Observable<? extends T> o6,Observable<? extends T> o7,Observable<? extends T> o8,Observable<? extends T> o9) Concatenates nine sources eagerly into a single stream of values. |
<R> Observable<R> | concatMap(Func1<? superT,? extendsObservable<? extends R>> func) Returns a new Observable that emits items resulting from applying a function that you supply to each item emitted by the source Observable, where that function returns an Observable, and then emitting the items that result from concatenating those resulting Observables. |
<R> Observable<R> | concatMapDelayError(Func1<? superT,? extendsObservable<? extends R>> func) Maps each of the items into an Observable, subscribes to them one after the other, one at a time and emits their values in order while delaying any error from either this or any of the inner Observables till all of them terminate. |
<R> Observable<R> | concatMapEager(Func1<? superT,? extendsObservable<? extends R>> mapper) Maps a sequence of values into Observables and concatenates these Observables eagerly into a single Observable. |
<R> Observable<R> | concatMapEager(Func1<? superT,? extendsObservable<? extends R>> mapper, int capacityHint) Maps a sequence of values into Observables and concatenates these Observables eagerly into a single Observable. |
<R> Observable<R> | concatMapEager(Func1<? superT,? extendsObservable<? extends R>> mapper, int capacityHint, int maxConcurrent) Maps a sequence of values into Observables and concatenates these Observables eagerly into a single Observable. |
<R> Observable<R> | concatMapIterable(Func1<? superT,? extends java.lang.Iterable<? extends R>> collectionSelector) Returns an Observable that concatenate each item emitted by the source Observable with the values in an Iterable corresponding to that item that is generated by a selector. |
Observable<T> | concatWith(Observable<? extendsT> t1) Returns an Observable that emits the items emitted from the current Observable, then the next, one after the other, without interleaving them. |
Observable<java.lang.Boolean> | contains(java.lang.Object element) Returns an Observable that emits a Boolean that indicates whether the source Observable emitted a specified item. |
Observable<java.lang.Integer> | count() Returns an Observable that emits the count of the total number of items emitted by the source Observable. |
Observable<java.lang.Long> | countLong() Returns an Observable that counts the total number of items emitted by the source Observable and emits this count as a 64-bit Long. |
static <T> Observable<T> | create(Action1<Emitter<T>> emitter,Emitter.BackpressureMode backpressure) Provides an API (via a cold Observable) that bridges the reactive world with the callback-style, generally non-backpressured world. |
static <S,T> Observable<T> | create(AsyncOnSubscribe<S,T> asyncOnSubscribe) Returns an Observable that respects the back-pressure semantics. |
static <T> Observable<T> | create(Observable.OnSubscribe<T> f) Deprecated. 1.2.7 - inherently unsafe, use the other create() methods for basic cases or see unsafeCreate(OnSubscribe) for advanced cases (such as custom operators) |
static <S,T> Observable<T> | create(SyncOnSubscribe<S,T> syncOnSubscribe) Returns an Observable that respects the back-pressure semantics. |
<U> Observable<T> | debounce(Func1<? superT,? extendsObservable<U>> debounceSelector) Returns an Observable that mirrors the source Observable, except that it drops items emitted by the source Observable that are followed by another item within a computed debounce duration. |
Observable<T> | debounce(long timeout, java.util.concurrent.TimeUnit unit) Returns an Observable that mirrors the source Observable, except that it drops items emitted by the source Observable that are followed by newer items before a timeout value expires. |
Observable<T> | debounce(long timeout, java.util.concurrent.TimeUnit unit,Scheduler scheduler) Returns an Observable that mirrors the source Observable, except that it drops items emitted by the source Observable that are followed by newer items before a timeout value expires on a specified Scheduler. |
Observable<T> | defaultIfEmpty(T defaultValue) Returns an Observable that emits the items emitted by the source Observable or a specified default item if the source Observable is empty. |
static <T> Observable<T> | defer(Func0<Observable<T>> observableFactory) Returns an Observable that calls an Observable factory to create an Observable for each new Observer that subscribes. |
<U,V> Observable<T> | delay(Func0<? extendsObservable<U>> subscriptionDelay,Func1<? superT,? extendsObservable<V>> itemDelay) Returns an Observable that delays the subscription to and emissions from the source Observable via another Observable on a per-item basis. |
<U> Observable<T> | delay(Func1<? superT,? extendsObservable<U>> itemDelay) Returns an Observable that delays the emissions of the source Observable via another Observable on a per-item basis. |
Observable<T> | delay(long delay, java.util.concurrent.TimeUnit unit) Returns an Observable that emits the items emitted by the source Observable shifted forward in time by a specified delay. |
Observable<T> | delay(long delay, java.util.concurrent.TimeUnit unit,Scheduler scheduler) Returns an Observable that emits the items emitted by the source Observable shifted forward in time by a specified delay. |
<U> Observable<T> | delaySubscription(Func0<? extendsObservable<U>> subscriptionDelay) Returns an Observable that delays the subscription to the source Observable until a second Observable emits an item. |
Observable<T> | delaySubscription(long delay, java.util.concurrent.TimeUnit unit) Returns an Observable that delays the subscription to the source Observable by a given amount of time. |
Observable<T> | delaySubscription(long delay, java.util.concurrent.TimeUnit unit,Scheduler scheduler) Returns an Observable that delays the subscription to the source Observable by a given amount of time, both waiting and subscribing on a given Scheduler. |
<U> Observable<T> | delaySubscription(Observable<U> other) Returns an Observable that delays the subscription to this Observable until the other Observable emits an element or completes normally. |
<T2> Observable<T2> | dematerialize() Returns an Observable that reverses the effect of materialize by transforming theNotification objects emitted by the source Observable into the items or notifications they represent. |
Observable<T> | distinct() Returns an Observable that emits all items emitted by the source Observable that are distinct. |
<U> Observable<T> | distinct(Func1<? superT,? extends U> keySelector) Returns an Observable that emits all items emitted by the source Observable that are distinct according to a key selector function. |
Observable<T> | distinctUntilChanged() Returns an Observable that emits all items emitted by the source Observable that are distinct from their immediate predecessors. |
<U> Observable<T> | distinctUntilChanged(Func1<? superT,? extends U> keySelector) Returns an Observable that emits all items emitted by the source Observable that are distinct from their immediate predecessors, according to a key selector function. |
Observable<T> | distinctUntilChanged(Func2<? superT,? superT,java.lang.Boolean> comparator) Returns an Observable that emits all items emitted by the source Observable that are distinct from their immediate predecessors when compared with each other via the provided comparator function. |
Observable<T> | doAfterTerminate(Action0 action) |
Observable<T> | doOnCompleted(Action0 onCompleted) Modifies the source Observable so that it invokes an action when it calls onCompleted . |
Observable<T> | doOnEach(Action1<Notification<? superT>> onNotification) Modifies the source Observable so that it invokes an action for each item and terminal event it emits. |
Observable<T> | doOnEach(Observer<? superT> observer) Modifies the source Observable so that it notifies an Observer for each item and terminal event it emits. |
Observable<T> | doOnError(Action1<? super java.lang.Throwable> onError) Modifies the source Observable so that it invokes an action if it calls onError . |
Observable<T> | doOnNext(Action1<? superT> onNext) Modifies the source Observable so that it invokes an action when it calls onNext . |
Observable<T> | doOnRequest(Action1<? super java.lang.Long> onRequest) Modifies the source Observable so that it invokes the given action when it receives a request for more items. |
Observable<T> | doOnSubscribe(Action0 subscribe) Modifies the source Observable so that it invokes the given action when it is subscribed from its subscribers. |
Observable<T> | doOnTerminate(Action0 onTerminate) Modifies the source Observable so that it invokes an action when it calls onCompleted oronError . |
Observable<T> | doOnUnsubscribe(Action0 unsubscribe) Calls the unsubscribe Action0 if the downstream unsubscribes the sequence. |
Observable<T> | elementAt(int index) Returns an Observable that emits the single item at a specified index in a sequence of emissions from a source Observable. |
Observable<T> | elementAtOrDefault(int index,T defaultValue) Returns an Observable that emits the item found at a specified index in a sequence of emissions from a source Observable, or a default item if that index is out of range. |
static <T> Observable<T> | empty() Returns an Observable that emits no items to the Observer and immediately invokes itsonCompleted method. |
static <T> Observable<T> | error(java.lang.Throwable exception) |
Observable<java.lang.Boolean> | exists(Func1<? superT,java.lang.Boolean> predicate) Returns an Observable that emits true if any item emitted by the source Observable satisfies a specified condition, otherwisefalse . |
Observable<T> | filter(Func1<? superT,java.lang.Boolean> predicate) Filters items emitted by an Observable by only emitting those that satisfy a specified predicate. |
Observable<T> | finallyDo(Action0 action) Deprecated. use doAfterTerminate(Action0) instead. |
Observable<T> | first() Returns an Observable that emits only the very first item emitted by the source Observable, or notifies of an NoSuchElementException if the source Observable is empty. |
Observable<T> | first(Func1<? superT,java.lang.Boolean> predicate) Returns an Observable that emits only the very first item emitted by the source Observable that satisfies a specified condition, or notifies of an NoSuchElementException if no such items are emitted. |
Observable<T> | firstOrDefault(T defaultValue) Returns an Observable that emits only the very first item emitted by the source Observable, or a default item if the source Observable completes without emitting anything. |
Observable<T> | firstOrDefault(T defaultValue,Func1<? superT,java.lang.Boolean> predicate) Returns an Observable that emits only the very first item emitted by the source Observable that satisfies a specified condition, or a default item if the source Observable emits no such items. |
<R> Observable<R> | flatMap(Func1<? superT,? extendsObservable<? extends R>> func) Returns an Observable that emits items based on applying a function that you supply to each item emitted by the source Observable, where that function returns an Observable, and then merging those resulting Observables and emitting the results of this merger. |
<R> Observable<R> | flatMap(Func1<? superT,? extendsObservable<? extends R>> onNext,Func1<? super java.lang.Throwable,? extendsObservable<? extends R>> onError,Func0<? extendsObservable<? extends R>> onCompleted) Returns an Observable that applies a function to each item emitted or notification raised by the source Observable and then flattens the Observables returned from these functions and emits the resulting items. |
<R> Observable<R> | flatMap(Func1<? superT,? extendsObservable<? extends R>> onNext,Func1<? super java.lang.Throwable,? extendsObservable<? extends R>> onError,Func0<? extendsObservable<? extends R>> onCompleted, int maxConcurrent) Returns an Observable that applies a function to each item emitted or notification raised by the source Observable and then flattens the Observables returned from these functions and emits the resulting items, while limiting the maximum number of concurrent subscriptions to these Observables. |
<R> Observable<R> | flatMap(Func1<? superT,? extendsObservable<? extends R>> func, int maxConcurrent) Returns an Observable that emits items based on applying a function that you supply to each item emitted by the source Observable, where that function returns an Observable, and then merging those resulting Observables and emitting the results of this merger, while limiting the maximum number of concurrent subscriptions to these Observables. |
<U,R> Observable<R> | flatMap(Func1<? superT,? extendsObservable<? extends U>> collectionSelector,Func2<? superT,? super U,? extends R> resultSelector) Returns an Observable that emits the results of a specified function to the pair of values emitted by the source Observable and a specified collection Observable. |
<U,R> Observable<R> | flatMap(Func1<? superT,? extendsObservable<? extends U>> collectionSelector,Func2<? superT,? super U,? extends R> resultSelector, int maxConcurrent) Returns an Observable that emits the results of a specified function to the pair of values emitted by the source Observable and a specified collection Observable, while limiting the maximum number of concurrent subscriptions to these Observables. |
Observable<T> | flatMapCompletable(Func1<? superT,? extendsCompletable> mapper) Maps all upstream values to Completables and runs them together until the upstream and all inner Completables complete normally. |
Observable<T> | flatMapCompletable(Func1<? superT,? extendsCompletable> mapper, boolean delayErrors) Maps all upstream values to Completables and runs them together, optionally delaying any errors, until the upstream and all inner Completables terminate. |
Observable<T> | flatMapCompletable(Func1<? superT,? extendsCompletable> mapper, boolean delayErrors, int maxConcurrency) Maps upstream values to Completables and runs up to the given number of them together at a time, optionally delaying any errors, until the upstream and all inner Completables terminate. |
<R> Observable<R> | flatMapIterable(Func1<? superT,? extends java.lang.Iterable<? extends R>> collectionSelector) Returns an Observable that merges each item emitted by the source Observable with the values in an Iterable corresponding to that item that is generated by a selector. |
<R> Observable<R> | flatMapIterable(Func1<? superT,? extends java.lang.Iterable<? extends R>> collectionSelector, int maxConcurrent) Returns an Observable that merges each item emitted by the source Observable with the values in an Iterable corresponding to that item that is generated by a selector, while limiting the number of concurrent subscriptions to these Observables. |
<U,R> Observable<R> | flatMapIterable(Func1<? superT,? extends java.lang.Iterable<? extends U>> collectionSelector,Func2<? superT,? super U,? extends R> resultSelector) Returns an Observable that emits the results of applying a function to the pair of values from the source Observable and an Iterable corresponding to that item that is generated by a selector. |
<U,R> Observable<R> | flatMapIterable(Func1<? superT,? extends java.lang.Iterable<? extends U>> collectionSelector,Func2<? superT,? super U,? extends R> resultSelector, int maxConcurrent) Returns an Observable that emits the results of applying a function to the pair of values from the source Observable and an Iterable corresponding to that item that is generated by a selector, while limiting the number of concurrent subscriptions to these Observables. |
<R> Observable<R> | flatMapSingle(Func1<? superT,? extendsSingle<? extends R>> mapper) Maps all upstream values to Singles and runs them together until the upstream and all inner Singles complete normally. |
<R> Observable<R> | flatMapSingle(Func1<? superT,? extendsSingle<? extends R>> mapper, boolean delayErrors) Maps all upstream values to Singles and runs them together, optionally delaying any errors, until the upstream and all inner Singles terminate. |
<R> Observable<R> | flatMapSingle(Func1<? superT,? extendsSingle<? extends R>> mapper, boolean delayErrors, int maxConcurrency) Maps upstream values to Singles and runs up to the given number of them together at a time, optionally delaying any errors, until the upstream and all inner Singles terminate. |
void | forEach(Action1<? superT> onNext) Subscribes to the Observable and receives notifications for each element. |
void | forEach(Action1<? superT> onNext,Action1<java.lang.Throwable> onError) Subscribes to the Observable and receives notifications for each element and error events. |
void | forEach(Action1<? superT> onNext,Action1<java.lang.Throwable> onError,Action0 onComplete) Subscribes to the Observable and receives notifications for each element and the terminal events. |
static <T> Observable<T> | from(java.util.concurrent.Future<? extends T> future) Converts a Future into an Observable. |
static <T> Observable<T> | from(java.util.concurrent.Future<? extends T> future, long timeout, java.util.concurrent.TimeUnit unit) Converts a Future into an Observable, with a timeout on the Future. |
static <T> Observable<T> | from(java.util.concurrent.Future<? extends T> future,Scheduler scheduler) Converts a Future , operating on a specifiedScheduler , into an Observable. |
static <T> Observable<T> | from(java.lang.Iterable<? extends T> iterable) Converts an Iterable sequence into an Observable that emits the items in the sequence. |
static <T> Observable<T> | from(T[] array) Converts an Array into an Observable that emits the items in the Array. |
static <T> Observable<T> | fromCallable(java.util.concurrent.Callable<? extends T> func) Returns an Observable that, when an observer subscribes to it, invokes a function you specify and then emits the value returned from that function. |
<K> Observable<GroupedObservable<K,T>> | groupBy(Func1<? superT,? extends K> keySelector) Groups the items emitted by an Observable according to a specified criterion, and emits these grouped items asGroupedObservable s. |
<K,R> Observable<GroupedObservable<K,R>> | groupBy(Func1<? superT,? extends K> keySelector,Func1<? superT,? extends R> elementSelector) Groups the items emitted by an Observable according to a specified criterion, and emits these grouped items asGroupedObservable s. |
<K,R> Observable<GroupedObservable<K,R>> | groupBy(Func1<? superT,? extends K> keySelector,Func1<? superT,? extends R> elementSelector,Func1<Action1<K>,java.util.Map<K,java.lang.Object>> evictingMapFactory) Deprecated. since 1.3.7, use groupBy(Func1, Func1, int, boolean, Func1) instead which uses much less memory. Please take note of the usage difference involving the evicting action which now expects the value from the map instead of the key. |
<K,R> Observable<GroupedObservable<K,R>> | groupBy(Func1<? superT,? extends K> keySelector,Func1<? superT,? extends R> elementSelector, int bufferSize, boolean delayError,Func1<Action1<java.lang.Object>,java.util.Map<K,java.lang.Object>> evictingMapFactory) Groups the items emitted by an Observable according to a specified criterion, and emits these grouped items asGroupedObservable s. |
<T2,D1,D2,R> | groupJoin(Observable<T2> right,Func1<? superT,? extendsObservable<D1>> leftDuration,Func1<? super T2,? extendsObservable<D2>> rightDuration,Func2<? superT,? superObservable<T2>,? extends R> resultSelector) Returns an Observable that correlates two Observables when they overlap in time and groups the results. |
Observable<T> | ignoreElements() Ignores all items emitted by the source Observable and only calls onCompleted oronError . |
staticObservable<java.lang.Long> | interval(long initialDelay, long period, java.util.concurrent.TimeUnit unit) Returns an Observable that emits a 0L after theinitialDelay and ever increasing numbers after eachperiod of time thereafter. |
staticObservable<java.lang.Long> | interval(long initialDelay, long period, java.util.concurrent.TimeUnit unit,Scheduler scheduler) Returns an Observable that emits a 0L after theinitialDelay and ever increasing numbers after eachperiod of time thereafter, on a specifiedScheduler . |
staticObservable<java.lang.Long> | interval(long interval, java.util.concurrent.TimeUnit unit) Returns an Observable that emits a sequential number every specified interval of time. |
staticObservable<java.lang.Long> | interval(long interval, java.util.concurrent.TimeUnit unit,Scheduler scheduler) Returns an Observable that emits a sequential number every specified interval of time, on a specified Scheduler. |
Observable<java.lang.Boolean> | isEmpty() Returns an Observable that emits true if the source Observable is empty, otherwisefalse . |
<TRight,TLeftDuration,TRightDuration,R> | join(Observable<TRight> right,Func1<T,Observable<TLeftDuration>> leftDurationSelector,Func1<TRight,Observable<TRightDuration>> rightDurationSelector,Func2<T,TRight,R> resultSelector) Correlates the items emitted by two Observables based on overlapping durations. |
static <T> Observable<T> | just(T value) Returns an Observable that emits a single item and then completes. |
static <T> Observable<T> | just(T t1, T t2) Converts two items into an Observable that emits those items. |
static <T> Observable<T> | just(T t1, T t2, T t3) Converts three items into an Observable that emits those items. |
static <T> Observable<T> | just(T t1, T t2, T t3, T t4) Converts four items into an Observable that emits those items. |
static <T> Observable<T> | just(T t1, T t2, T t3, T t4, T t5) Converts five items into an Observable that emits those items. |
static <T> Observable<T> | just(T t1, T t2, T t3, T t4, T t5, T t6) Converts six items into an Observable that emits those items. |
static <T> Observable<T> | just(T t1, T t2, T t3, T t4, T t5, T t6, T t7) Converts seven items into an Observable that emits those items. |
static <T> Observable<T> | just(T t1, T t2, T t3, T t4, T t5, T t6, T t7, T t8) Converts eight items into an Observable that emits those items. |
static <T> Observable<T> | just(T t1, T t2, T t3, T t4, T t5, T t6, T t7, T t8, T t9) Converts nine items into an Observable that emits those items. |
static <T> Observable<T> | just(T t1, T t2, T t3, T t4, T t5, T t6, T t7, T t8, T t9, T t10) Converts ten items into an Observable that emits those items. |
Observable<T> | last() Returns an Observable that emits the last item emitted by the source Observable or notifies observers of a NoSuchElementException if the source Observable is empty. |
Observable<T> | last(Func1<? superT,java.lang.Boolean> predicate) Returns an Observable that emits only the last item emitted by the source Observable that satisfies a given condition, or notifies of a NoSuchElementException if no such items are emitted. |
Observable<T> | lastOrDefault(T defaultValue) Returns an Observable that emits only the last item emitted by the source Observable, or a default item if the source Observable completes without emitting any items. |
Observable<T> | lastOrDefault(T defaultValue,Func1<? superT,java.lang.Boolean> predicate) Returns an Observable that emits only the last item emitted by the source Observable that satisfies a specified condition, or a default item if no such item is emitted by the source Observable. |
<R> Observable<R> | lift(Observable.Operator<? extends R,? superT> operator) This method requires advanced knowledge about building operators; please consider other standard composition methods first; Lifts a function to the current Observable and returns a new Observable that when subscribed to will pass the values of the current Observable through the Operator function. |
Observable<T> | limit(int count) Returns an Observable that emits only the first count items emitted by the source Observable. |
<R> Observable<R> | map(Func1<? superT,? extends R> func) Returns an Observable that applies a specified function to each item emitted by the source Observable and emits the results of these function applications. |
Observable<Notification<T>> | materialize() Returns an Observable that represents all of the emissionsand notifications from the source Observable into emissions marked with their original types within Notification objects. |
static <T> Observable<T> | merge(java.lang.Iterable<? extendsObservable<? extends T>> sequences) Flattens an Iterable of Observables into one Observable, without any transformation. |
static <T> Observable<T> | merge(java.lang.Iterable<? extendsObservable<? extends T>> sequences, int maxConcurrent) Flattens an Iterable of Observables into one Observable, without any transformation, while limiting the number of concurrent subscriptions to these Observables. |
static <T> Observable<T> | merge(Observable<? extendsObservable<? extends T>> source) Flattens an Observable that emits Observables into a single Observable that emits the items emitted by those Observables, without any transformation. |
static <T> Observable<T> | merge(Observable<? extendsObservable<? extends T>> source, int maxConcurrent) Flattens an Observable that emits Observables into a single Observable that emits the items emitted by those Observables, without any transformation, while limiting the maximum number of concurrent subscriptions to these Observables. |
static <T> Observable<T> | merge(Observable<? extends T>[] sequences) Flattens an Array of Observables into one Observable, without any transformation. |
static <T> Observable<T> | merge(Observable<? extends T>[] sequences, int maxConcurrent) Flattens an Array of Observables into one Observable, without any transformation, while limiting the number of concurrent subscriptions to these Observables. |
static <T> Observable<T> | merge(Observable<? extends T> t1,Observable<? extends T> t2) Flattens two Observables into a single Observable, without any transformation. |
static <T> Observable<T> | merge(Observable<? extends T> t1,Observable<? extends T> t2,Observable<? extends T> t3) Flattens three Observables into a single Observable, without any transformation. |
static <T> Observable<T> | merge(Observable<? extends T> t1,Observable<? extends T> t2,Observable<? extends T> t3,Observable<? extends T> t4) Flattens four Observables into a single Observable, without any transformation. |
static <T> Observable<T> | merge(Observable<? extends T> t1,Observable<? extends T> t2,Observable<? extends T> t3,Observable<? extends T> t4,Observable<? extends T> t5) Flattens five Observables into a single Observable, without any transformation. |
static <T> Observable<T> | merge(Observable<? extends T> t1,Observable<? extends T> t2,Observable<? extends T> t3,Observable<? extends T> t4,Observable<? extends T> t5,Observable<? extends T> t6) Flattens six Observables into a single Observable, without any transformation. |
static <T> Observable<T> | merge(Observable<? extends T> t1,Observable<? extends T> t2,Observable<? extends T> t3,Observable<? extends T> t4,Observable<? extends T> t5,Observable<? extends T> t6,Observable<? extends T> t7) Flattens seven Observables into a single Observable, without any transformation. |
static <T> Observable<T> | merge(Observable<? extends T> t1,Observable<? extends T> t2,Observable<? extends T> t3,Observable<? extends T> t4,Observable<? extends T> t5,Observable<? extends T> t6,Observable<? extends T> t7,Observable<? extends T> t8) Flattens eight Observables into a single Observable, without any transformation. |
static <T> Observable<T> | merge(Observable<? extends T> t1,Observable<? extends T> t2,Observable<? extends T> t3,Observable<? extends T> t4,Observable<? extends T> t5,Observable<? extends T> t6,Observable<? extends T> t7,Observable<? extends T> t8,Observable<? extends T> t9) Flattens nine Observables into a single Observable, without any transformation. |
static <T> Observable<T> | mergeDelayError(java.lang.Iterable<? extendsObservable<? extends T>> sequences) Flattens an Iterable of Observables into one Observable, in a way that allows an Observer to receive all successfully emitted items from each of the source Observables without being interrupted by an error notification from one of them. |
static <T> Observable<T> | mergeDelayError(java.lang.Iterable<? extendsObservable<? extends T>> sequences, int maxConcurrent) Flattens an Iterable of Observables into one Observable, in a way that allows an Observer to receive all successfully emitted items from each of the source Observables without being interrupted by an error notification from one of them, while limiting the number of concurrent subscriptions to these Observables. |
static <T> Observable<T> | mergeDelayError(Observable<? extendsObservable<? extends T>> source) Flattens an Observable that emits Observables into one Observable, in a way that allows an Observer to receive all successfully emitted items from all of the source Observables without being interrupted by an error notification from one of them. |
static <T> Observable<T> | mergeDelayError(Observable<? extendsObservable<? extends T>> source, int maxConcurrent) Flattens an Observable that emits Observables into one Observable, in a way that allows an Observer to receive all successfully emitted items from all of the source Observables without being interrupted by an error notification from one of them, while limiting the number of concurrent subscriptions to these Observables. |
static <T> Observable<T> | mergeDelayError(Observable<? extends T> t1,Observable<? extends T> t2) Flattens two Observables into one Observable, in a way that allows an Observer to receive all successfully emitted items from each of the source Observables without being interrupted by an error notification from one of them. |
static <T> Observable<T> | mergeDelayError(Observable<? extends T> t1,Observable<? extends T> t2,Observable<? extends T> t3) Flattens three Observables into one Observable, in a way that allows an Observer to receive all successfully emitted items from all of the source Observables without being interrupted by an error notification from one of them. |
static <T> Observable<T> | mergeDelayError(Observable<? extends T> t1,Observable<? extends T> t2,Observable<? extends T> t3,Observable<? extends T> t4) Flattens four Observables into one Observable, in a way that allows an Observer to receive all successfully emitted items from all of the source Observables without being interrupted by an error notification from one of them. |
static <T> Observable<T> | mergeDelayError(Observable<? extends T> t1,Observable<? extends T> t2,Observable<? extends T> t3,Observable<? extends T> t4,Observable<? extends T> t5) Flattens five Observables into one Observable, in a way that allows an Observer to receive all successfully emitted items from all of the source Observables without being interrupted by an error notification from one of them. |
static <T> Observable<T> | mergeDelayError(Observable<? extends T> t1,Observable<? extends T> t2,Observable<? extends T> t3,Observable<? extends T> t4,Observable<? extends T> t5,Observable<? extends T> t6) Flattens six Observables into one Observable, in a way that allows an Observer to receive all successfully emitted items from all of the source Observables without being interrupted by an error notification from one of them. |
static <T> Observable<T> | mergeDelayError(Observable<? extends T> t1,Observable<? extends T> t2,Observable<? extends T> t3,Observable<? extends T> t4,Observable<? extends T> t5,Observable<? extends T> t6,Observable<? extends T> t7) Flattens seven Observables into one Observable, in a way that allows an Observer to receive all successfully emitted items from all of the source Observables without being interrupted by an error notification from one of them. |
static <T> Observable<T> | mergeDelayError(Observable<? extends T> t1,Observable<? extends T> t2,Observable<? extends T> t3,Observable<? extends T> t4,Observable<? extends T> t5,Observable<? extends T> t6,Observable<? extends T> t7,Observable<? extends T> t8) Flattens eight Observables into one Observable, in a way that allows an Observer to receive all successfully emitted items from all of the source Observables without being interrupted by an error notification from one of them. |
static <T> Observable<T> | mergeDelayError(Observable<? extends T> t1,Observable<? extends T> t2,Observable<? extends T> t3,Observable<? extends T> t4,Observable<? extends T> t5,Observable<? extends T> t6,Observable<? extends T> t7,Observable<? extends T> t8,Observable<? extends T> t9) Flattens nine Observables into one Observable, in a way that allows an Observer to receive all successfully emitted items from all of the source Observables without being interrupted by an error notification from one of them. |
Observable<T> | mergeWith(Observable<? extendsT> t1) Flattens this and another Observable into a single Observable, without any transformation. |
Observable<Observable<T>> | nest() Converts the source Observable<T> into anObservable<Observable<T>> that emits the source Observable as its single emission. |
static <T> Observable<T> | never() Returns an Observable that never sends any items or notifications to an Observer . |
Observable<T> | observeOn(Scheduler scheduler) Modifies an Observable to perform its emissions and notifications on a specified Scheduler , asynchronously with a bounded buffer ofRxRingBuffer.SIZE slots. |
Observable<T> | observeOn(Scheduler scheduler, boolean delayError) Modifies an Observable to perform its emissions and notifications on a specified Scheduler , asynchronously with a bounded buffer and optionally delays onError notifications. |
Observable<T> | observeOn(Scheduler scheduler, boolean delayError, int bufferSize) Modifies an Observable to perform its emissions and notifications on a specified Scheduler , asynchronously with a bounded buffer of configurable size and optionally delays onError notifications. |
Observable<T> | observeOn(Scheduler scheduler, int bufferSize) Modifies an Observable to perform its emissions and notifications on a specified Scheduler , asynchronously with a bounded buffer of configurable size. |
<R> Observable<R> | ofType(java.lang.Class<R> klass) Filters the items emitted by an Observable, only emitting those of the specified type. |
Observable<T> | onBackpressureBuffer() Instructs an Observable that is emitting items faster than its observer can consume them to buffer these items indefinitely until they can be emitted. |
Observable<T> | onBackpressureBuffer(long capacity) Instructs an Observable that is emitting items faster than its observer can consume them to buffer up to a given amount of items until they can be emitted. |
Observable<T> | onBackpressureBuffer(long capacity,Action0 onOverflow) Instructs an Observable that is emitting items faster than its observer can consume them to buffer up to a given amount of items until they can be emitted. |
Observable<T> | onBackpressureBuffer(long capacity,Action0 onOverflow,BackpressureOverflow.Strategy overflowStrategy) Instructs an Observable that is emitting items faster than its observer can consume them to buffer up to a given amount of items until they can be emitted. |
Observable<T> | onBackpressureDrop() Instructs an Observable that is emitting items faster than its observer can consume them to discard, rather than emit, those items that its observer is not prepared to observe. |
Observable<T> | onBackpressureDrop(Action1<? superT> onDrop) Instructs an Observable that is emitting items faster than its observer can consume them to discard, rather than emit, those items that its observer is not prepared to observe. |
Observable<T> | onBackpressureLatest() Instructs an Observable that is emitting items faster than its observer can consume them to hold onto the latest value and emit that on request. |
Observable<T> | onErrorResumeNext(Func1<? super java.lang.Throwable,? extendsObservable<? extendsT>> resumeFunction) Instructs an Observable to pass control to another Observable rather than invoking onError if it encounters an error. |
Observable<T> | onErrorResumeNext(Observable<? extendsT> resumeSequence) Instructs an Observable to pass control to another Observable rather than invoking onError if it encounters an error. |
Observable<T> | onErrorReturn(Func1<? super java.lang.Throwable,? extendsT> resumeFunction) Instructs an Observable to emit an item (returned by a specified function) rather than invoking onError if it encounters an error. |
Observable<T> | onExceptionResumeNext(Observable<? extendsT> resumeSequence) Instructs an Observable to pass control to another Observable rather than invoking onError if it encounters anException . |
Observable<T> | onTerminateDetach() Nulls out references to the upstream producer and downstream Subscriber if the sequence is terminated or downstream unsubscribes. |
ConnectableObservable<T> | publish() Returns a ConnectableObservable , which is a variety of Observable that waits until itsconnect method is called before it begins emitting items to thoseObserver s that have subscribed to it. |
<R> Observable<R> | publish(Func1<? superObservable<T>,? extendsObservable<R>> selector) Returns an Observable that emits the results of invoking a specified selector on items emitted by a ConnectableObservable that shares a single subscription to the underlying sequence. |
staticObservable<java.lang.Integer> | range(int start, int count) Returns an Observable that emits a sequence of Integers within a specified range. |
staticObservable<java.lang.Integer> | range(int start, int count,Scheduler scheduler) Returns an Observable that emits a sequence of Integers within a specified range, on a specified Scheduler. |
Observable<T> | rebatchRequests(int n) Requests n initially from the upstream and then 75% ofn subsequently after 75% ofn values have been emitted to the downstream. |
Observable<T> | reduce(Func2<T,T,T> accumulator) Returns an Observable that applies a specified accumulator function to the first item emitted by a source Observable, then feeds the result of that function along with the second item emitted by the source Observable into the same function, and so on until all items have been emitted by the source Observable, and emits the final result from the final call to your function as its sole item. |
<R> Observable<R> | reduce(R initialValue,Func2<R,? superT,R> accumulator) Returns an Observable that applies a specified accumulator function to the first item emitted by a source Observable and a specified seed value, then feeds the result of that function along with the second item emitted by an Observable into the same function, and so on until all items have been emitted by the source Observable, emitting the final result from the final call to your function as its sole item. |
Observable<T> | repeat() Returns an Observable that repeats the sequence of items emitted by the source Observable indefinitely. |
Observable<T> | repeat(long count) Returns an Observable that repeats the sequence of items emitted by the source Observable at most count times. |
Observable<T> | repeat(long count,Scheduler scheduler) Returns an Observable that repeats the sequence of items emitted by the source Observable at most count times, on a particular Scheduler. |
Observable<T> | repeat(Scheduler scheduler) Returns an Observable that repeats the sequence of items emitted by the source Observable indefinitely, on a particular Scheduler. |
Observable<T> | repeatWhen(Func1<? superObservable<? extends java.lang.Void>,? extendsObservable<?>> notificationHandler) Returns an Observable that emits the same values as the source Observable with the exception of an onCompleted . |
Observable<T> | repeatWhen(Func1<? superObservable<? extends java.lang.Void>,? extendsObservable<?>> notificationHandler,Scheduler scheduler) Returns an Observable that emits the same values as the source Observable with the exception of an onCompleted . |
ConnectableObservable<T> | replay() Returns a ConnectableObservable that shares a single subscription to the underlying Observable that will replay all of its items and notifications to any futureObserver . |
<R> Observable<R> | replay(Func1<? superObservable<T>,? extendsObservable<R>> selector) Returns an Observable that emits items that are the results of invoking a specified selector on the items emitted by a ConnectableObservable that shares a single subscription to the source Observable. |
<R> Observable<R> | replay(Func1<? superObservable<T>,? extendsObservable<R>> selector, int bufferSize) Returns an Observable that emits items that are the results of invoking a specified selector on items emitted by a ConnectableObservable that shares a single subscription to the source Observable, replayingbufferSize notifications. |
<R> Observable<R> | replay(Func1<? superObservable<T>,? extendsObservable<R>> selector, int bufferSize, long time, java.util.concurrent.TimeUnit unit) Returns an Observable that emits items that are the results of invoking a specified selector on items emitted by a ConnectableObservable that shares a single subscription to the source Observable, replaying no more thanbufferSize items that were emitted within a specified time window. |
<R> Observable<R> | replay(Func1<? superObservable<T>,? extendsObservable<R>> selector, int bufferSize, long time, java.util.concurrent.TimeUnit unit,Scheduler scheduler) Returns an Observable that emits items that are the results of invoking a specified selector on items emitted by a ConnectableObservable that shares a single subscription to the source Observable, replaying no more thanbufferSize items that were emitted within a specified time window. |
<R> Observable<R> | replay(Func1<? superObservable<T>,? extendsObservable<R>> selector, int bufferSize,Scheduler scheduler) Returns an Observable that emits items that are the results of invoking a specified selector on items emitted by a ConnectableObservable that shares a single subscription to the source Observable, replaying a maximum ofbufferSize items. |
<R> Observable<R> | replay(Func1<? superObservable<T>,? extendsObservable<R>> selector, long time, java.util.concurrent.TimeUnit unit) Returns an Observable that emits items that are the results of invoking a specified selector on items emitted by a ConnectableObservable that shares a single subscription to the source Observable, replaying all items that were emitted within a specified time window. |
<R> Observable<R> | replay(Func1<? superObservable<T>,? extendsObservable<R>> selector, long time, java.util.concurrent.TimeUnit unit,Scheduler scheduler) Returns an Observable that emits items that are the results of invoking a specified selector on items emitted by a ConnectableObservable that shares a single subscription to the source Observable, replaying all items that were emitted within a specified time window. |
<R> Observable<R> | replay(Func1<? superObservable<T>,? extendsObservable<R>> selector,Scheduler scheduler) Returns an Observable that emits items that are the results of invoking a specified selector on items emitted by a ConnectableObservable that shares a single subscription to the source Observable. |
ConnectableObservable<T> | replay(int bufferSize) Returns a ConnectableObservable that shares a single subscription to the source Observable that replays at mostbufferSize items emitted by that Observable. |
ConnectableObservable<T> | replay(int bufferSize, long time, java.util.concurrent.TimeUnit unit) Returns a ConnectableObservable that shares a single subscription to the source Observable and replays at mostbufferSize items that were emitted during a specified time window. |
ConnectableObservable<T> | replay(int bufferSize, long time, java.util.concurrent.TimeUnit unit,Scheduler scheduler) Returns a ConnectableObservable that shares a single subscription to the source Observable and that replays a maximum ofbufferSize items that are emitted within a specified time window. |
ConnectableObservable<T> | replay(int bufferSize,Scheduler scheduler) Returns a ConnectableObservable that shares a single subscription to the source Observable and replays at mostbufferSize items emitted by that Observable. |
ConnectableObservable<T> | replay(long time, java.util.concurrent.TimeUnit unit) Returns a ConnectableObservable that shares a single subscription to the source Observable and replays all items emitted by that Observable within a specified time window. |
ConnectableObservable<T> | replay(long time, java.util.concurrent.TimeUnit unit,Scheduler scheduler) Returns a ConnectableObservable that shares a single subscription to the source Observable and replays all items emitted by that Observable within a specified time window. |
ConnectableObservable<T> | replay(Scheduler scheduler) Returns a ConnectableObservable that shares a single subscription to the source Observable that will replay all of its items and notifications to any futureObserver on the givenScheduler . |
Observable<T> | retry() Returns an Observable that mirrors the source Observable, resubscribing to it if it calls onError (infinite retry count). |
Observable<T> | retry(Func2<java.lang.Integer,java.lang.Throwable,java.lang.Boolean> predicate) Returns an Observable that mirrors the source Observable, resubscribing to it if it calls onError and the predicate returns true for that specific exception and retry count. |
Observable<T> | retry(long count) Returns an Observable that mirrors the source Observable, resubscribing to it if it calls onError up to a specified number of retries. |
Observable<T> | retryWhen(Func1<? superObservable<? extends java.lang.Throwable>,? extendsObservable<?>> notificationHandler) Returns an Observable that emits the same values as the source observable with the exception of an onError . |
Observable<T> | retryWhen(Func1<? superObservable<? extends java.lang.Throwable>,? extendsObservable<?>> notificationHandler,Scheduler scheduler) Returns an Observable that emits the same values as the source observable with the exception of an onError . |
Observable<T> | sample(long period, java.util.concurrent.TimeUnit unit) Returns an Observable that emits the most recently emitted item (if any) emitted by the source Observable within periodic time intervals. |
Observable<T> | sample(long period, java.util.concurrent.TimeUnit unit,Scheduler scheduler) Returns an Observable that emits the most recently emitted item (if any) emitted by the source Observable within periodic time intervals, where the intervals are defined on a particular Scheduler. |
<U> Observable<T> | sample(Observable<U> sampler) Returns an Observable that, when the specified sampler Observable emits an item or completes, emits the most recently emitted item (if any) emitted by the source Observable since the previous emission from thesampler Observable. |
Observable<T> | scan(Func2<T,T,T> accumulator) Returns an Observable that applies a specified accumulator function to the first item emitted by a source Observable, then feeds the result of that function along with the second item emitted by the source Observable into the same function, and so on until all items have been emitted by the source Observable, emitting the result of each of these iterations. |
<R> Observable<R> | scan(R initialValue,Func2<R,? superT,R> accumulator) Returns an Observable that applies a specified accumulator function to the first item emitted by a source Observable and a seed value, then feeds the result of that function along with the second item emitted by the source Observable into the same function, and so on until all items have been emitted by the source Observable, emitting the result of each of these iterations. |
static <T> Observable<java.lang.Boolean> | sequenceEqual(Observable<? extends T> first,Observable<? extends T> second) Returns an Observable that emits a Boolean value that indicates whether two Observable sequences are the same by comparing the items emitted by each Observable pairwise. |
static <T> Observable<java.lang.Boolean> | sequenceEqual(Observable<? extends T> first,Observable<? extends T> second,Func2<? super T,? super T,java.lang.Boolean> equality) Returns an Observable that emits a Boolean value that indicates whether two Observable sequences are the same by comparing the items emitted by each Observable pairwise based on the results of a specified equality function. |
Observable<T> | serialize() Forces an Observable's emissions and notifications to be serialized and for it to obeythe Observable contract in other ways. |
Observable<T> | share() Returns a new Observable that multicasts (shares) the originalObservable . |
Observable<T> | single() Returns an Observable that emits the single item emitted by the source Observable, if that Observable emits only a single item. |
Observable<T> | single(Func1<? superT,java.lang.Boolean> predicate) Returns an Observable that emits the single item emitted by the source Observable that matches a specified predicate, if that Observable emits one such item. |
Observable<T> | singleOrDefault(T defaultValue) Returns an Observable that emits the single item emitted by the source Observable, if that Observable emits only a single item, or a default item if the source Observable emits no items. |
Observable<T> | singleOrDefault(T defaultValue,Func1<? superT,java.lang.Boolean> predicate) Returns an Observable that emits the single item emitted by the source Observable that matches a predicate, if that Observable emits only one such item, or a default item if the source Observable emits no such items. |
Observable<T> | skip(int count) Returns an Observable that skips the first count items emitted by the source Observable and emits the remainder. |
Observable<T> | skip(long time, java.util.concurrent.TimeUnit unit) Returns an Observable that skips values emitted by the source Observable before a specified time window elapses. |
Observable<T> | skip(long time, java.util.concurrent.TimeUnit unit,Scheduler scheduler) Returns an Observable that skips values emitted by the source Observable before a specified time window on a specified Scheduler elapses. |
Observable<T> | skipLast(int count) Returns an Observable that drops a specified number of items from the end of the sequence emitted by the source Observable. |
Observable<T> | skipLast(long time, java.util.concurrent.TimeUnit unit) Returns an Observable that drops items emitted by the source Observable during a specified time window before the source completes. |
Observable<T> | skipLast(long time, java.util.concurrent.TimeUnit unit,Scheduler scheduler) Returns an Observable that drops items emitted by the source Observable during a specified time window (defined on a specified scheduler) before the source completes. |
<U> Observable<T> | skipUntil(Observable<U> other) Returns an Observable that skips items emitted by the source Observable until a second Observable emits an item. |
Observable<T> | skipWhile(Func1<? superT,java.lang.Boolean> predicate) Returns an Observable that skips all items emitted by the source Observable as long as a specified condition holds true, but emits all further source items as soon as the condition becomes false. |
Observable<T> | sorted() Returns an Observable that emits the events emitted by source Observable, in a sorted order. |
Observable<T> | sorted(Func2<? superT,? superT,java.lang.Integer> sortFunction) Returns an Observable that emits the events emitted by source Observable, in a sorted order based on a specified comparison function. |
Observable<T> | startWith(java.lang.Iterable<T> values) Returns an Observable that emits the items in a specified Iterable before it begins to emit items emitted by the source Observable. |
Observable<T> | startWith(Observable<T> values) Returns an Observable that emits the items in a specified Observable before it begins to emit items emitted by the source Observable. |
Observable<T> | startWith(T t1) Returns an Observable that emits a specified item before it begins to emit items emitted by the source Observable. |
Observable<T> | startWith(T t1,T t2) Returns an Observable that emits the specified items before it begins to emit items emitted by the source Observable. |
Observable<T> | startWith(T t1,T t2,T t3) Returns an Observable that emits the specified items before it begins to emit items emitted by the source Observable. |
Observable<T> | startWith(T t1,T t2,T t3,T t4) Returns an Observable that emits the specified items before it begins to emit items emitted by the source Observable. |
Observable<T> | startWith(T t1,T t2,T t3,T t4,T t5) Returns an Observable that emits the specified items before it begins to emit items emitted by the source Observable. |
Observable<T> | startWith(T t1,T t2,T t3,T t4,T t5,T t6) Returns an Observable that emits the specified items before it begins to emit items emitted by the source Observable. |
Observable<T> | startWith(T t1,T t2,T t3,T t4,T t5,T t6,T t7) Returns an Observable that emits the specified items before it begins to emit items emitted by the source Observable. |
Observable<T> | startWith(T t1,T t2,T t3,T t4,T t5,T t6,T t7,T t8) Returns an Observable that emits the specified items before it begins to emit items emitted by the source Observable. |
Observable<T> | startWith(T t1,T t2,T t3,T t4,T t5,T t6,T t7,T t8,T t9) Returns an Observable that emits the specified items before it begins to emit items emitted by the source Observable. |
Subscription | subscribe() Subscribes to an Observable and ignores onNext andonCompleted emissions. |
Subscription | subscribe(Action1<? superT> onNext) Subscribes to an Observable and provides a callback to handle the items it emits. |
Subscription | subscribe(Action1<? superT> onNext,Action1<java.lang.Throwable> onError) Subscribes to an Observable and provides callbacks to handle the items it emits and any error notification it issues. |
Subscription | subscribe(Action1<? superT> onNext,Action1<java.lang.Throwable> onError,Action0 onCompleted) Subscribes to an Observable and provides callbacks to handle the items it emits and any error or completion notification it issues. |
Subscription | subscribe(Observer<? superT> observer) Subscribes to an Observable and provides an Observer that implements functions to handle the items the Observable emits and any error or completion notification it issues. |
Subscription | subscribe(Subscriber<? superT> subscriber) Subscribes to an Observable and provides a Subscriber that implements functions to handle the items the Observable emits and any error or completion notification it issues. |
Observable<T> | subscribeOn(Scheduler scheduler) Asynchronously subscribes Observers to this Observable on the specified Scheduler . |
Observable<T> | subscribeOn(Scheduler scheduler, boolean requestOn) |
Observable<T> | switchIfEmpty(Observable<? extendsT> alternate) Returns an Observable that emits the items emitted by the source Observable or the items of an alternate Observable if the source Observable is empty. |
<R> Observable<R> | switchMap(Func1<? superT,? extendsObservable<? extends R>> func) Returns a new Observable by applying a function that you supply to each item emitted by the source Observable that returns an Observable, and then emitting the items emitted by the most recently emitted of these Observables. |
<R> Observable<R> | switchMapDelayError(Func1<? superT,? extendsObservable<? extends R>> func) Returns a new Observable by applying a function that you supply to each item emitted by the source Observable that returns an Observable, and then emitting the items emitted by the most recently emitted of these Observables and delays any error until all Observables terminate. |
static <T> Observable<T> | switchOnNext(Observable<? extendsObservable<? extends T>> sequenceOfSequences) Converts an Observable that emits Observables into an Observable that emits the items emitted by the most recently emitted of those Observables. |
static <T> Observable<T> | switchOnNextDelayError(Observable<? extendsObservable<? extends T>> sequenceOfSequences) Converts an Observable that emits Observables into an Observable that emits the items emitted by the most recently emitted of those Observables and delays any exception until all Observables terminate. |
Observable<T> | take(int count) Returns an Observable that emits only the first count items emitted by the source Observable. |
Observable<T> | take(long time, java.util.concurrent.TimeUnit unit) Returns an Observable that emits those items emitted by source Observable before a specified time runs out. |
Observable<T> | take(long time, java.util.concurrent.TimeUnit unit,Scheduler scheduler) Returns an Observable that emits those items emitted by source Observable before a specified time (on a specified Scheduler) runs out. |
Observable<T> | takeFirst(Func1<? superT,java.lang.Boolean> predicate) Returns an Observable that emits only the very first item emitted by the source Observable that satisfies a specified condition. |
Observable<T> | takeLast(int count) Returns an Observable that emits at most the last count items emitted by the source Observable. |
Observable<T> | takeLast(int count, long time, java.util.concurrent.TimeUnit unit) Returns an Observable that emits at most a specified number of items from the source Observable that were emitted in a specified window of time before the Observable completed. |
Observable<T> | takeLast(int count, long time, java.util.concurrent.TimeUnit unit,Scheduler scheduler) Returns an Observable that emits at most a specified number of items from the source Observable that were emitted in a specified window of time before the Observable completed, where the timing information is provided by a given Scheduler. |
Observable<T> | takeLast(long time, java.util.concurrent.TimeUnit unit) Returns an Observable that emits the items from the source Observable that were emitted in a specified window of time before the Observable completed. |
Observable<T> | takeLast(long time, java.util.concurrent.TimeUnit unit,Scheduler scheduler) Returns an Observable that emits the items from the source Observable that were emitted in a specified window of time before the Observable completed, where the timing information is provided by a specified Scheduler. |
Observable<java.util.List<T>> | takeLastBuffer(int count) Returns an Observable that emits a single List containing at most the last count elements emitted by the source Observable. |
Observable<java.util.List<T>> | takeLastBuffer(int count, long time, java.util.concurrent.TimeUnit unit) Returns an Observable that emits a single List containing at most count items from the source Observable that were emitted during a specified window of time before the source Observable completed. |
Observable<java.util.List<T>> | takeLastBuffer(int count, long time, java.util.concurrent.TimeUnit unit,Scheduler scheduler) Returns an Observable that emits a single List containing at most count items from the source Observable that were emitted during a specified window of time (on a specified Scheduler) before the source Observable completed. |
Observable<java.util.List<T>> | takeLastBuffer(long time, java.util.concurrent.TimeUnit unit) Returns an Observable that emits a single List containing those items from the source Observable that were emitted during a specified window of time before the source Observable completed. |
Observable<java.util.List<T>> | takeLastBuffer(long time, java.util.concurrent.TimeUnit unit,Scheduler scheduler) Returns an Observable that emits a single List containing those items from the source Observable that were emitted during a specified window of time before the source Observable completed, where the timing information is provided by the given Scheduler. |
Observable<T> | takeUntil(Func1<? superT,java.lang.Boolean> stopPredicate) Returns an Observable that emits items emitted by the source Observable, checks the specified predicate for each item, and then completes when the condition is satisfied. |
<E> Observable<T> | takeUntil(Observable<? extends E> other) Returns an Observable that emits the items emitted by the source Observable until a second Observable emits an item. |
Observable<T> | takeWhile(Func1<? superT,java.lang.Boolean> predicate) Returns an Observable that emits items emitted by the source Observable so long as each item satisfied a specified condition, and then completes as soon as this condition is not satisfied. |
AssertableSubscriber<T> | test() Creates a AssertableSubscriber that requests Long.MAX_VALUE and subscribes it to this Observable. |
AssertableSubscriber<T> | test(long initialRequestAmount) Creates an AssertableSubscriber with the initial request amount and subscribes it to this Observable. |
Observable<T> | throttleFirst(long windowDuration, java.util.concurrent.TimeUnit unit) Returns an Observable that emits only the first item emitted by the source Observable during sequential time windows of a specified duration. |
Observable<T> | throttleFirst(long skipDuration, java.util.concurrent.TimeUnit unit,Scheduler scheduler) Returns an Observable that emits only the first item emitted by the source Observable during sequential time windows of a specified duration, where the windows are managed by a specified Scheduler. |
Observable<T> | throttleLast(long intervalDuration, java.util.concurrent.TimeUnit unit) Returns an Observable that emits only the last item emitted by the source Observable during sequential time windows of a specified duration. |
Observable<T> | throttleLast(long intervalDuration, java.util.concurrent.TimeUnit unit,Scheduler scheduler) Returns an Observable that emits only the last item emitted by the source Observable during sequential time windows of a specified duration, where the duration is governed by a specified Scheduler. |
Observable<T> | throttleWithTimeout(long timeout, java.util.concurrent.TimeUnit unit) Returns an Observable that only emits those items emitted by the source Observable that are not followed by another emitted item within a specified time window. |
Observable<T> | throttleWithTimeout(long timeout, java.util.concurrent.TimeUnit unit,Scheduler scheduler) Returns an Observable that only emits those items emitted by the source Observable that are not followed by another emitted item within a specified time window, where the time window is governed by a specified Scheduler. |
Observable<TimeInterval<T>> | timeInterval() Returns an Observable that emits records of the time interval between consecutive items emitted by the source Observable. |
Observable<TimeInterval<T>> | timeInterval(Scheduler scheduler) Returns an Observable that emits records of the time interval between consecutive items emitted by the source Observable, where this interval is computed on a specified Scheduler. |
<U,V> Observable<T> | timeout(Func0<? extendsObservable<U>> firstTimeoutSelector,Func1<? superT,? extendsObservable<V>> timeoutSelector) Returns an Observable that mirrors the source Observable, but notifies observers of a TimeoutException if either the first item emitted by the source Observable or any subsequent item doesn't arrive within time windows defined by other Observables. |
<U,V> Observable<T> | timeout(Func0<? extendsObservable<U>> firstTimeoutSelector,Func1<? superT,? extendsObservable<V>> timeoutSelector,Observable<? extendsT> other) Returns an Observable that mirrors the source Observable, but switches to a fallback Observable if either the first item emitted by the source Observable or any subsequent item doesn't arrive within time windows defined by other Observables. |
<V> Observable<T> | timeout(Func1<? superT,? extendsObservable<V>> timeoutSelector) Returns an Observable that mirrors the source Observable, but notifies observers of a TimeoutException if an item emitted by the source Observable doesn't arrive within a window of time after the emission of the previous item, where that period of time is measured by an Observable that is a function of the previous item. |
<V> Observable<T> | timeout(Func1<? superT,? extendsObservable<V>> timeoutSelector,Observable<? extendsT> other) Returns an Observable that mirrors the source Observable, but that switches to a fallback Observable if an item emitted by the source Observable doesn't arrive within a window of time after the emission of the previous item, where that period of time is measured by an Observable that is a function of the previous item. |
Observable<T> | timeout(long timeout, java.util.concurrent.TimeUnit timeUnit) Returns an Observable that mirrors the source Observable but applies a timeout policy for each emitted item. |
Observable<T> | timeout(long timeout, java.util.concurrent.TimeUnit timeUnit,Observable<? extendsT> other) Returns an Observable that mirrors the source Observable but applies a timeout policy for each emitted item. |
Observable<T> | timeout(long timeout, java.util.concurrent.TimeUnit timeUnit,Observable<? extendsT> other,Scheduler scheduler) Returns an Observable that mirrors the source Observable but applies a timeout policy for each emitted item using a specified Scheduler. |
Observable<T> | timeout(long timeout, java.util.concurrent.TimeUnit timeUnit,Scheduler scheduler) Returns an Observable that mirrors the source Observable but applies a timeout policy for each emitted item, where this policy is governed on a specified Scheduler. |
staticObservable<java.lang.Long> | timer(long initialDelay, long period, java.util.concurrent.TimeUnit unit) Deprecated. use interval(long, long, TimeUnit) instead |
staticObservable<java.lang.Long> | timer(long initialDelay, long period, java.util.concurrent.TimeUnit unit,Scheduler scheduler) Deprecated. use interval(long, long, TimeUnit, Scheduler) instead |
staticObservable<java.lang.Long> | timer(long delay, java.util.concurrent.TimeUnit unit) Returns an Observable that emits 0L after a specified delay, and then completes. |
staticObservable<java.lang.Long> | timer(long delay, java.util.concurrent.TimeUnit unit,Scheduler scheduler) Returns an Observable that emits 0L after a specified delay, on a specified Scheduler, and then completes. |
Observable<Timestamped<T>> | timestamp() Returns an Observable that emits each item emitted by the source Observable, wrapped in a Timestamped object. |
Observable<Timestamped<T>> | timestamp(Scheduler scheduler) Returns an Observable that emits each item emitted by the source Observable, wrapped in a Timestamped object whose timestamps are provided by a specified Scheduler. |
<R> R | to(Func1<? superObservable<T>,R> converter) Calls the specified converter function during assembly time and returns its resulting value. |
BlockingObservable<T> | toBlocking() Converts an Observable into a BlockingObservable (an Observable with blocking operators). |
Completable | toCompletable() Returns a Completable that discards all onNext emissions (similar to ignoreAllElements() ) and calls onCompleted when this source observable calls onCompleted. |
Observable<java.util.List<T>> | toList() Returns an Observable that emits a single item, a list composed of all the items emitted by the source Observable. |
<K> Observable<java.util.Map<K,T>> | toMap(Func1<? superT,? extends K> keySelector) Returns an Observable that emits a single HashMap containing all items emitted by the source Observable, mapped by the keys returned by a specified keySelector function. |
<K,V> Observable<java.util.Map<K,V>> | toMap(Func1<? superT,? extends K> keySelector,Func1<? superT,? extends V> valueSelector) Returns an Observable that emits a single HashMap containing values corresponding to items emitted by the source Observable, mapped by the keys returned by a specified keySelector function. |
<K,V> Observable<java.util.Map<K,V>> | toMap(Func1<? superT,? extends K> keySelector,Func1<? superT,? extends V> valueSelector,Func0<? extends java.util.Map<K,V>> mapFactory) Returns an Observable that emits a single Map, returned by a specified mapFactory function, that contains keys and values extracted from the items emitted by the source Observable. |
<K> Observable<java.util.Map<K,java.util.Collection<T>>> | toMultimap(Func1<? superT,? extends K> keySelector) Returns an Observable that emits a single HashMap that contains an ArrayList of items emitted by the source Observable keyed by a specified keySelector function. |
<K,V> Observable<java.util.Map<K,java.util.Collection<V>>> | toMultimap(Func1<? superT,? extends K> keySelector,Func1<? superT,? extends V> valueSelector) Returns an Observable that emits a single HashMap that contains an ArrayList of values extracted by a specified valueSelector function from items emitted by the source Observable, keyed by a specifiedkeySelector function. |
<K,V> Observable<java.util.Map<K,java.util.Collection<V>>> | toMultimap(Func1<? superT,? extends K> keySelector,Func1<? superT,? extends V> valueSelector,Func0<? extends java.util.Map<K,java.util.Collection<V>>> mapFactory) Returns an Observable that emits a single Map, returned by a specified mapFactory function, that contains an ArrayList of values, extracted by a specifiedvalueSelector function from items emitted by the source Observable and keyed by thekeySelector function. |
<K,V> Observable<java.util.Map<K,java.util.Collection<V>>> | toMultimap(Func1<? superT,? extends K> keySelector,Func1<? superT,? extends V> valueSelector,Func0<? extends java.util.Map<K,java.util.Collection<V>>> mapFactory,Func1<? super K,? extends java.util.Collection<V>> collectionFactory) Returns an Observable that emits a single Map, returned by a specified mapFactory function, that contains a custom collection of values, extracted by a specifiedvalueSelector function from items emitted by the source Observable, and keyed by thekeySelector function. |
Single<T> | toSingle() Returns a Single that emits the single item emitted by the source Observable, if that Observable emits only a single item. |
Observable<java.util.List<T>> | toSortedList() Returns an Observable that emits a list that contains the items emitted by the source Observable, in a sorted order. |
Observable<java.util.List<T>> | toSortedList(Func2<? superT,? superT,java.lang.Integer> sortFunction) Returns an Observable that emits a list that contains the items emitted by the source Observable, in a sorted order based on a specified comparison function. |
Observable<java.util.List<T>> | toSortedList(Func2<? superT,? superT,java.lang.Integer> sortFunction, int initialCapacity) Returns an Observable that emits a list that contains the items emitted by the source Observable, in a sorted order based on a specified comparison function. |
Observable<java.util.List<T>> | toSortedList(int initialCapacity) Returns an Observable that emits a list that contains the items emitted by the source Observable, in a sorted order. |
static <T> Observable<T> | unsafeCreate(Observable.OnSubscribe<T> f) Returns an Observable that executes the given OnSubscribe action for each individual Subscriber that subscribes;unsubscription and backpressure must be implemented manually. |
Subscription | unsafeSubscribe(Subscriber<? superT> subscriber) Subscribes to an Observable and invokes Observable.OnSubscribe function without any contract protection, error handling, unsubscribe, or execution hooks. |
Observable<T> | unsubscribeOn(Scheduler scheduler) Modifies the source Observable so that subscribers will unsubscribe from it on a specified Scheduler . |
static <T,Resource> | using(Func0<Resource> resourceFactory,Func1<? super Resource,? extendsObservable<? extends T>> observableFactory,Action1<? super Resource> disposeAction) Constructs an Observable that creates a dependent resource object which is disposed of on unsubscription. |
static <T,Resource> | using(Func0<Resource> resourceFactory,Func1<? super Resource,? extendsObservable<? extends T>> observableFactory,Action1<? super Resource> disposeAction, boolean disposeEagerly) Constructs an Observable that creates a dependent resource object which is disposed of just before termination if you have set disposeEagerly totrue and unsubscription does not occur before termination. |
<TClosing> Observable<Observable<T>> | window(Func0<? extendsObservable<? extends TClosing>> closingSelector) Returns an Observable that emits windows of items it collects from the source Observable. |
Observable<Observable<T>> | window(int count) Returns an Observable that emits windows of items it collects from the source Observable. |
Observable<Observable<T>> | window(int count, int skip) Returns an Observable that emits windows of items it collects from the source Observable. |
Observable<Observable<T>> | window(long timespan, long timeshift, java.util.concurrent.TimeUnit unit) Returns an Observable that emits windows of items it collects from the source Observable. |
Observable<Observable<T>> | window(long timespan, long timeshift, java.util.concurrent.TimeUnit unit, int count,Scheduler scheduler) Returns an Observable that emits windows of items it collects from the source Observable. |
Observable<Observable<T>> | window(long timespan, long timeshift, java.util.concurrent.TimeUnit unit,Scheduler scheduler) Returns an Observable that emits windows of items it collects from the source Observable. |
Observable<Observable<T>> | window(long timespan, java.util.concurrent.TimeUnit unit) Returns an Observable that emits windows of items it collects from the source Observable. |
Observable<Observable<T>> | window(long timespan, java.util.concurrent.TimeUnit unit, int count) Returns an Observable that emits windows of items it collects from the source Observable. |
Observable<Observable<T>> | window(long timespan, java.util.concurrent.TimeUnit unit, int count,Scheduler scheduler) Returns an Observable that emits windows of items it collects from the source Observable. |
Observable<Observable<T>> | window(long timespan, java.util.concurrent.TimeUnit unit,Scheduler scheduler) Returns an Observable that emits windows of items it collects from the source Observable. |
<TOpening,TClosing> | window(Observable<? extends TOpening> windowOpenings,Func1<? super TOpening,? extendsObservable<? extends TClosing>> closingSelector) Returns an Observable that emits windows of items it collects from the source Observable. |
<U> Observable<Observable<T>> | window(Observable<U> boundary) Returns an Observable that emits non-overlapping windows of items it collects from the source Observable where the boundary of each window is determined by the items emitted from a specified boundary-governing Observable. |
<R> Observable<R> | withLatestFrom(java.lang.Iterable<Observable<?>> others,FuncN<R> combiner) Combines the value emission from this Observable with the latest emissions from the other Observables via a function to produce the output item. |
<R> Observable<R> | withLatestFrom(Observable<?>[] others,FuncN<R> combiner) Combines the value emission from this Observable with the latest emissions from the other Observables via a function to produce the output item. |
<U,R> Observable<R> | withLatestFrom(Observable<? extends U> other,Func2<? superT,? super U,? extends R> resultSelector) Merges the specified Observable into this Observable sequence by using the resultSelector function only when the source Observable (this instance) emits an item. |
<T1,T2,R> Observable<R> | withLatestFrom(Observable<T1> o1,Observable<T2> o2,Func3<? superT,? super T1,? super T2,R> combiner) Combines the value emission from this Observable with the latest emissions from the other Observables via a function to produce the output item. |
<T1,T2,T3,R> | withLatestFrom(Observable<T1> o1,Observable<T2> o2,Observable<T3> o3,Func4<? superT,? super T1,? super T2,? super T3,R> combiner) Combines the value emission from this Observable with the latest emissions from the other Observables via a function to produce the output item. |
<T1,T2,T3,T4,R> | withLatestFrom(Observable<T1> o1,Observable<T2> o2,Observable<T3> o3,Observable<T4> o4,Func5<? superT,? super T1,? super T2,? super T3,? super T4,R> combiner) Combines the value emission from this Observable with the latest emissions from the other Observables via a function to produce the output item. |
<T1,T2,T3,T4,T5,R> | withLatestFrom(Observable<T1> o1,Observable<T2> o2,Observable<T3> o3,Observable<T4> o4,Observable<T5> o5,Func6<? superT,? super T1,? super T2,? super T3,? super T4,? super T5,R> combiner) Combines the value emission from this Observable with the latest emissions from the other Observables via a function to produce the output item. |
<T1,T2,T3,T4,T5,T6,R> | withLatestFrom(Observable<T1> o1,Observable<T2> o2,Observable<T3> o3,Observable<T4> o4,Observable<T5> o5,Observable<T6> o6,Func7<? superT,? super T1,? super T2,? super T3,? super T4,? super T5,? super T6,R> combiner) Combines the value emission from this Observable with the latest emissions from the other Observables via a function to produce the output item. |
<T1,T2,T3,T4,T5,T6,T7,R> | withLatestFrom(Observable<T1> o1,Observable<T2> o2,Observable<T3> o3,Observable<T4> o4,Observable<T5> o5,Observable<T6> o6,Observable<T7> o7,Func8<? superT,? super T1,? super T2,? super T3,? super T4,? super T5,? super T6,? super T7,R> combiner) Combines the value emission from this Observable with the latest emissions from the other Observables via a function to produce the output item. |
<T1,T2,T3,T4,T5,T6,T7,T8,R> | withLatestFrom(Observable<T1> o1,Observable<T2> o2,Observable<T3> o3,Observable<T4> o4,Observable<T5> o5,Observable<T6> o6,Observable<T7> o7,Observable<T8> o8,Func9<? superT,? super T1,? super T2,? super T3,? super T4,? super T5,? super T6,? super T7,? super T8,R> combiner) Combines the value emission from this Observable with the latest emissions from the other Observables via a function to produce the output item. |
static <R> Observable<R> | zip(java.lang.Iterable<? extendsObservable<?>> ws,FuncN<? extends R> zipFunction) Returns an Observable that emits the results of a specified combiner function applied to combinations of items emitted, in sequence, by an Iterable of other Observables. |
static <R> Observable<R> | zip(Observable<?>[] ws,FuncN<? extends R> zipFunction) Returns an Observable that emits the results of a specified combiner function applied to combinations of items emitted, in sequence, by an array of other Observables. |
static <R> Observable<R> | zip(Observable<? extendsObservable<?>> ws,FuncN<? extends R> zipFunction) Returns an Observable that emits the results of a specified combiner function applied to combinations ofn items emitted, in sequence, by then Observables emitted by a specified Observable. |
static <T1,T2,R> Observable<R> | zip(Observable<? extends T1> o1,Observable<? extends T2> o2,Func2<? super T1,? super T2,? extends R> zipFunction) Returns an Observable that emits the results of a specified combiner function applied to combinations of two items emitted, in sequence, by two other Observables. |
static <T1,T2,T3,R> | zip(Observable<? extends T1> o1,Observable<? extends T2> o2,Observable<? extends T3> o3,Func3<? super T1,? super T2,? super T3,? extends R> zipFunction) Returns an Observable that emits the results of a specified combiner function applied to combinations of three items emitted, in sequence, by three other Observables. |
static <T1,T2,T3,T4,R> | zip(Observable<? extends T1> o1,Observable<? extends T2> o2,Observable<? extends T3> o3,Observable<? extends T4> o4,Func4<? super T1,? super T2,? super T3,? super T4,? extends R> zipFunction) Returns an Observable that emits the results of a specified combiner function applied to combinations of four items emitted, in sequence, by four other Observables. |
static <T1,T2,T3,T4,T5,R> | zip(Observable<? extends T1> o1,Observable<? extends T2> o2,Observable<? extends T3> o3,Observable<? extends T4> o4,Observable<? extends T5> o5,Func5<? super T1,? super T2,? super T3,? super T4,? super T5,? extends R> zipFunction) Returns an Observable that emits the results of a specified combiner function applied to combinations of five items emitted, in sequence, by five other Observables. |
static <T1,T2,T3,T4,T5,T6,R> | zip(Observable<? extends T1> o1,Observable<? extends T2> o2,Observable<? extends T3> o3,Observable<? extends T4> o4,Observable<? extends T5> o5,Observable<? extends T6> o6,Func6<? super T1,? super T2,? super T3,? super T4,? super T5,? super T6,? extends R> zipFunction) Returns an Observable that emits the results of a specified combiner function applied to combinations of six items emitted, in sequence, by six other Observables. |
static <T1,T2,T3,T4,T5,T6,T7,R> | zip(Observable<? extends T1> o1,Observable<? extends T2> o2,Observable<? extends T3> o3,Observable<? extends T4> o4,Observable<? extends T5> o5,Observable<? extends T6> o6,Observable<? extends T7> o7,Func7<? super T1,? super T2,? super T3,? super T4,? super T5,? super T6,? super T7,? extends R> zipFunction) Returns an Observable that emits the results of a specified combiner function applied to combinations of seven items emitted, in sequence, by seven other Observables. |
static <T1,T2,T3,T4,T5,T6,T7,T8,R> | zip(Observable<? extends T1> o1,Observable<? extends T2> o2,Observable<? extends T3> o3,Observable<? extends T4> o4,Observable<? extends T5> o5,Observable<? extends T6> o6,Observable<? extends T7> o7,Observable<? extends T8> o8,Func8<? super T1,? super T2,? super T3,? super T4,? super T5,? super T6,? super T7,? super T8,? extends R> zipFunction) Returns an Observable that emits the results of a specified combiner function applied to combinations of eight items emitted, in sequence, by eight other Observables. |
static <T1,T2,T3,T4,T5,T6,T7,T8,T9,R> | zip(Observable<? extends T1> o1,Observable<? extends T2> o2,Observable<? extends T3> o3,Observable<? extends T4> o4,Observable<? extends T5> o5,Observable<? extends T6> o6,Observable<? extends T7> o7,Observable<? extends T8> o8,Observable<? extends T9> o9,Func9<? super T1,? super T2,? super T3,? super T4,? super T5,? super T6,? super T7,? super T8,? super T9,? extends R> zipFunction) Returns an Observable that emits the results of a specified combiner function applied to combinations of nine items emitted, in sequence, by nine other Observables. |
<T2,R> Observable<R> | zipWith(java.lang.Iterable<? extends T2> other,Func2<? superT,? super T2,? extends R> zipFunction) Returns an Observable that emits items that are the result of applying a specified function to pairs of values, one each from the source Observable and a specified Iterable sequence. |
<T2,R> Observable<R> | zipWith(Observable<? extends T2> other,Func2<? superT,? super T2,? extends R> zipFunction) Returns an Observable that emits items that are the result of applying a specified function to pairs of values, one each from the source Observable and another specified Observable. |
protected Observable(Observable.OnSubscribe<T> f)
Note: UseunsafeCreate(OnSubscribe)
to create an Observable, instead of this constructor, unless you specifically have a need for inheritance.
f
-Observable.OnSubscribe
to be executed whensubscribe(Subscriber)
is called@Deprecatedpublic static <T> Observable<T> create(Observable.OnSubscribe<T> f)
unsafeCreate(OnSubscribe)
for advanced cases (such as custom operators)T
- the value type emittedf
- the callback to execute for each individual Subscriber that subscribes to the returned Observablecreate(SyncOnSubscribe)
,create(AsyncOnSubscribe)
,create(Action1, rx.Emitter.BackpressureMode)
public static <T> Observable<T> create(Action1<Emitter<T>> emitter,Emitter.BackpressureMode backpressure)
Example:
Observable.<Event>create(emitter -> { Callback listener = new Callback() { @Override public void onEvent(Event e) { emitter.onNext(e); if (e.isLast()) { emitter.onCompleted(); } } @Override public void onFailure(Exception e) { emitter.onError(e); } }; AutoCloseable c = api.someMethod(listener); emitter.setCancellation(c::close); }, BackpressureMode.BUFFER);
You should call the Emitter's onNext, onError and onCompleted methods in a serialized fashion. The rest of its methods are thread-safe.
History: 1.2.7 - experimental
T
- the element typeemitter
- the emitter that is called when a Subscriber subscribes to the returnedObservable
backpressure
- the backpressure mode to apply if the downstream Subscriber doesn't request (fast) enoughEmitter
,Emitter.BackpressureMode
,Cancellable
public static <T> Observable<T> unsafeCreate(Observable.OnSubscribe<T> f)
Write the function you pass tocreate
so that it behaves as an Observable: It should invoke the Subscriber'sonNext
,onError
, andonCompleted
methods appropriately.
A well-formed Observable must invoke either the Subscriber'sonCompleted
method exactly once or itsonError
method exactly once.
SeeRx Design Guidelines (PDF) for detailed information.
OnSubscribe
instance provided is responsible to be backpressure-aware or document the fact that the consumer of the returnedObservable
has to apply one of theonBackpressureXXX
operators.unsafeCreate
does not operate by default on a particularScheduler
.History: 1.2.7 - experimental
T
- the type of the items that this Observable emitsf
- a function that accepts anSubscriber<T>
, and invokes itsonNext
,onError
, andonCompleted
methods as appropriateSubscriber
subscribes to it, will execute the specified functionpublic static <S,T> Observable<T> create(SyncOnSubscribe<S,T> syncOnSubscribe)
SyncOnSubscribe
's life cycle for generating events.Note: theSyncOnSubscribe
provides a generic way to fulfill data by iterating over a (potentially stateful) function (e.g. reading data off of a channel, a parser, ). If your data comes directly from an asynchronous/potentially concurrent source then consider using theasynchronous overload
.
SeeRx Design Guidelines (PDF) for detailed information.
create
does not operate by default on a particularScheduler
.T
- the type of the items that this Observable emitsS
- the state typesyncOnSubscribe
- an implementation ofSyncOnSubscribe
. There are many static creation methods on the class for convenience.Subscriber
subscribes to it, will execute the specified functionSyncOnSubscribe.createSingleState(Func0, Action2)
,SyncOnSubscribe.createSingleState(Func0, Action2, Action1)
,SyncOnSubscribe.createStateful(Func0, Func2)
,SyncOnSubscribe.createStateful(Func0, Func2, Action1)
,SyncOnSubscribe.createStateless(Action1)
,SyncOnSubscribe.createStateless(Action1, Action0)
,ReactiveX operators documentation: Create@Betapublic static <S,T> Observable<T> create(AsyncOnSubscribe<S,T> asyncOnSubscribe)
AsyncOnSubscribe
's life cycle for generating events.Note: theAsyncOnSubscribe
is useful for observable sources of data that are necessarily asynchronous (RPC, external services, etc). Typically most use cases can be solved with thesynchronous overload
.
SeeRx Design Guidelines (PDF) for detailed information.
create
does not operate by default on a particularScheduler
.T
- the type of the items that this Observable emitsS
- the state typeasyncOnSubscribe
- an implementation ofAsyncOnSubscribe
. There are many static creation methods on the class for convenience.Subscriber
subscribes to it, will execute the specified functionAsyncOnSubscribe.createSingleState(Func0, Action3)
,AsyncOnSubscribe.createSingleState(Func0, Action3, Action1)
,AsyncOnSubscribe.createStateful(Func0, Func3)
,AsyncOnSubscribe.createStateful(Func0, Func3, Action1)
,AsyncOnSubscribe.createStateless(Action2)
,AsyncOnSubscribe.createStateless(Action2, Action0)
,ReactiveX operators documentation: Createpublic final <R> Observable<R> lift(Observable.Operator<? extends R,? superT> operator)
In other words, this allows chaining Observers together on an Observable for acting on the values within the Observable.
observable.map(...).filter(...).take(5).lift(new OperatorA()).lift(new OperatorB(...)).subscribe()
If the operator you are creating is designed to act on the individual items emitted by a source Observable, uselift
. If your operator is designed to transform the source Observable as a whole (for instance, by applying a particular set of existing RxJava operators to it) usecompose(rx.Observable.Transformer<? super T, ? extends R>)
.
Operator
instance provided is responsible to be backpressure-aware or document the fact that the consumer of the returnedObservable
has to apply one of theonBackpressureXXX
operators.lift
does not operate by default on a particularScheduler
.R
- the output value typeoperator
- the Operator that implements the Observable-operating function to be applied to the source Observablepublic <R> Observable<R> compose(Observable.Transformer<? superT,? extends R> transformer)
This method operates on the Observable itself whereaslift(rx.Observable.Operator<? extends R, ? super T>)
operates on the Observable's Subscribers or Observers.
If the operator you are creating is designed to act on the individual items emitted by a source Observable, uselift(rx.Observable.Operator<? extends R, ? super T>)
. If your operator is designed to transform the source Observable as a whole (for instance, by applying a particular set of existing RxJava operators to it) usecompose
.
Observable
the transformer returns.compose
does not operate by default on a particularScheduler
.R
- the value type of the output Observabletransformer
- implements the function that transforms the source Observablepublic final <R> R to(Func1<? superObservable<T>,R> converter)
This allows fluent conversion to any other type.
R
- the resulting object typeconverter
- the function that receives the current Observable instance and returns a valuepublic Single<T> toSingle()
IllegalArgumentException
orNoSuchElementException
respectively.Observable
and the returnedSingle
does not have a notion of backpressure.toSingle
does not operate by default on a particularScheduler
.java.lang.IllegalArgumentException
- if the source observable emits more than one itemjava.util.NoSuchElementException
- if the source observable emits no itemspublic Completable toCompletable()
ignoreAllElements()
) and calls onCompleted when this source observable calls onCompleted. Error terminal events are propagated.Observable
and the returnedCompletable
does not have a notion of backpressure.toCompletable
does not operate by default on a particularScheduler
.public static <T> Observable<T> amb(java.lang.Iterable<? extendsObservable<? extends T>> sources)
Observable
's backpressure behavior.amb
does not operate by default on a particularScheduler
.T
- the common element typesources
- an Iterable of Observable sources competing to react firstpublic static <T> Observable<T> amb(Observable<? extends T> o1,Observable<? extends T> o2)
Observable
's backpressure behavior.amb
does not operate by default on a particularScheduler
.T
- the common element typeo1
- an Observable competing to react firsto2
- an Observable competing to react firstpublic static <T> Observable<T> amb(Observable<? extends T> o1,Observable<? extends T> o2,Observable<? extends T> o3)
Observable
's backpressure behavior.amb
does not operate by default on a particularScheduler
.T
- the common element base typeo1
- an Observable competing to react firsto2
- an Observable competing to react firsto3
- an Observable competing to react firstpublic static <T> Observable<T> amb(Observable<? extends T> o1,Observable<? extends T> o2,Observable<? extends T> o3,Observable<? extends T> o4)
Observable
's backpressure behavior.amb
does not operate by default on a particularScheduler
.T
- the common element base typeo1
- an Observable competing to react firsto2
- an Observable competing to react firsto3
- an Observable competing to react firsto4
- an Observable competing to react firstpublic static <T> Observable<T> amb(Observable<? extends T> o1,Observable<? extends T> o2,Observable<? extends T> o3,Observable<? extends T> o4,Observable<? extends T> o5)
Observable
's backpressure behavior.amb
does not operate by default on a particularScheduler
.T
- the common element base typeo1
- an Observable competing to react firsto2
- an Observable competing to react firsto3
- an Observable competing to react firsto4
- an Observable competing to react firsto5
- an Observable competing to react firstpublic static <T> Observable<T> amb(Observable<? extends T> o1,Observable<? extends T> o2,Observable<? extends T> o3,Observable<? extends T> o4,Observable<? extends T> o5,Observable<? extends T> o6)
Observable
's backpressure behavior.amb
does not operate by default on a particularScheduler
.T
- the common element base typeo1
- an Observable competing to react firsto2
- an Observable competing to react firsto3
- an Observable competing to react firsto4
- an Observable competing to react firsto5
- an Observable competing to react firsto6
- an Observable competing to react firstpublic static <T> Observable<T> amb(Observable<? extends T> o1,Observable<? extends T> o2,Observable<? extends T> o3,Observable<? extends T> o4,Observable<? extends T> o5,Observable<? extends T> o6,Observable<? extends T> o7)
Observable
's backpressure behavior.amb
does not operate by default on a particularScheduler
.T
- the common element base typeo1
- an Observable competing to react firsto2
- an Observable competing to react firsto3
- an Observable competing to react firsto4
- an Observable competing to react firsto5
- an Observable competing to react firsto6
- an Observable competing to react firsto7
- an Observable competing to react firstpublic static <T> Observable<T> amb(Observable<? extends T> o1,Observable<? extends T> o2,Observable<? extends T> o3,Observable<? extends T> o4,Observable<? extends T> o5,Observable<? extends T> o6,Observable<? extends T> o7,Observable<? extends T> o8)
Observable
's backpressure behavior.amb
does not operate by default on a particularScheduler
.T
- the common element base typeo1
- an Observable competing to react firsto2
- an Observable competing to react firsto3
- an Observable competing to react firsto4
- an Observable competing to react firsto5
- an Observable competing to react firsto6
- an Observable competing to react firsto7
- an Observable competing to react firsto8
- an observable competing to react firstpublic static <T> Observable<T> amb(Observable<? extends T> o1,Observable<? extends T> o2,Observable<? extends T> o3,Observable<? extends T> o4,Observable<? extends T> o5,Observable<? extends T> o6,Observable<? extends T> o7,Observable<? extends T> o8,Observable<? extends T> o9)
Observable
's backpressure behavior.amb
does not operate by default on a particularScheduler
.T
- the common element base typeo1
- an Observable competing to react firsto2
- an Observable competing to react firsto3
- an Observable competing to react firsto4
- an Observable competing to react firsto5
- an Observable competing to react firsto6
- an Observable competing to react firsto7
- an Observable competing to react firsto8
- an Observable competing to react firsto9
- an Observable competing to react firstpublic static <T1,T2,R> Observable<R> combineLatest(Observable<? extends T1> o1,Observable<? extends T2> o2,Func2<? super T1,? super T2,? extends R> combineFunction)
Observable
honors backpressure from downstream. The sourceObservable
s are requested in a bounded manner, however, their backpressure is not enforced (the operator won't signalMissingBackpressureException
) and may lead toOutOfMemoryError
due to internal buffer bloat.combineLatest
does not operate by default on a particularScheduler
.T1
- the element type of the first sourceT2
- the element type of the second sourceR
- the combined output typeo1
- the first source Observableo2
- the second source ObservablecombineFunction
- the aggregation function used to combine the items emitted by the source Observablespublic static <T1,T2,T3,R> Observable<R> combineLatest(Observable<? extends T1> o1,Observable<? extends T2> o2,Observable<? extends T3> o3,Func3<? super T1,? super T2,? super T3,? extends R> combineFunction)
Observable
honors backpressure from downstream. The sourceObservable
s are requested in a bounded manner, however, their backpressure is not enforced (the operator won't signalMissingBackpressureException
) and may lead toOutOfMemoryError
due to internal buffer bloat.combineLatest
does not operate by default on a particularScheduler
.T1
- the element type of the first sourceT2
- the element type of the second sourceT3
- the element type of the third sourceR
- the combined output typeo1
- the first source Observableo2
- the second source Observableo3
- the third source ObservablecombineFunction
- the aggregation function used to combine the items emitted by the source Observablespublic static <T1,T2,T3,T4,R> Observable<R> combineLatest(Observable<? extends T1> o1,Observable<? extends T2> o2,Observable<? extends T3> o3,Observable<? extends T4> o4,Func4<? super T1,? super T2,? super T3,? super T4,? extends R> combineFunction)
Observable
honors backpressure from downstream. The sourceObservable
s are requested in a bounded manner, however, their backpressure is not enforced (the operator won't signalMissingBackpressureException
) and may lead toOutOfMemoryError
due to internal buffer bloat.combineLatest
does not operate by default on a particularScheduler
.T1
- the element type of the first sourceT2
- the element type of the second sourceT3
- the element type of the third sourceT4
- the element type of the fourth sourceR
- the combined output typeo1
- the first source Observableo2
- the second source Observableo3
- the third source Observableo4
- the fourth source ObservablecombineFunction
- the aggregation function used to combine the items emitted by the source Observablespublic static <T1,T2,T3,T4,T5,R> Observable<R> combineLatest(Observable<? extends T1> o1,Observable<? extends T2> o2,Observable<? extends T3> o3,Observable<? extends T4> o4,Observable<? extends T5> o5,Func5<? super T1,? super T2,? super T3,? super T4,? super T5,? extends R> combineFunction)
Observable
honors backpressure from downstream. The sourceObservable
s are requested in a bounded manner, however, their backpressure is not enforced (the operator won't signalMissingBackpressureException
) and may lead toOutOfMemoryError
due to internal buffer bloat.combineLatest
does not operate by default on a particularScheduler
.T1
- the element type of the first sourceT2
- the element type of the second sourceT3
- the element type of the third sourceT4
- the element type of the fourth sourceT5
- the element type of the fifth sourceR
- the combined output typeo1
- the first source Observableo2
- the second source Observableo3
- the third source Observableo4
- the fourth source Observableo5
- the fifth source ObservablecombineFunction
- the aggregation function used to combine the items emitted by the source Observablespublic static <T1,T2,T3,T4,T5,T6,R> Observable<R> combineLatest(Observable<? extends T1> o1,Observable<? extends T2> o2,Observable<? extends T3> o3,Observable<? extends T4> o4,Observable<? extends T5> o5,Observable<? extends T6> o6,Func6<? super T1,? super T2,? super T3,? super T4,? super T5,? super T6,? extends R> combineFunction)
Observable
honors backpressure from downstream. The sourceObservable
s are requested in a bounded manner, however, their backpressure is not enforced (the operator won't signalMissingBackpressureException
) and may lead toOutOfMemoryError
due to internal buffer bloat.combineLatest
does not operate by default on a particularScheduler
.T1
- the element type of the first sourceT2
- the element type of the second sourceT3
- the element type of the third sourceT4
- the element type of the fourth sourceT5
- the element type of the fifth sourceT6
- the element type of the sixth sourceR
- the combined output typeo1
- the first source Observableo2
- the second source Observableo3
- the third source Observableo4
- the fourth source Observableo5
- the fifth source Observableo6
- the sixth source ObservablecombineFunction
- the aggregation function used to combine the items emitted by the source Observablespublic static <T1,T2,T3,T4,T5,T6,T7,R> Observable<R> combineLatest(Observable<? extends T1> o1,Observable<? extends T2> o2,Observable<? extends T3> o3,Observable<? extends T4> o4,Observable<? extends T5> o5,Observable<? extends T6> o6,Observable<? extends T7> o7,Func7<? super T1,? super T2,? super T3,? super T4,? super T5,? super T6,? super T7,? extends R> combineFunction)
Observable
honors backpressure from downstream. The sourceObservable
s are requested in a bounded manner, however, their backpressure is not enforced (the operator won't signalMissingBackpressureException
) and may lead toOutOfMemoryError
due to internal buffer bloat.combineLatest
does not operate by default on a particularScheduler
.T1
- the element type of the first sourceT2
- the element type of the second sourceT3
- the element type of the third sourceT4
- the element type of the fourth sourceT5
- the element type of the fifth sourceT6
- the element type of the sixth sourceT7
- the element type of the seventh sourceR
- the combined output typeo1
- the first source Observableo2
- the second source Observableo3
- the third source Observableo4
- the fourth source Observableo5
- the fifth source Observableo6
- the sixth source Observableo7
- the seventh source ObservablecombineFunction
- the aggregation function used to combine the items emitted by the source Observablespublic static <T1,T2,T3,T4,T5,T6,T7,T8,R> Observable<R> combineLatest(Observable<? extends T1> o1,Observable<? extends T2> o2,Observable<? extends T3> o3,Observable<? extends T4> o4,Observable<? extends T5> o5,Observable<? extends T6> o6,Observable<? extends T7> o7,Observable<? extends T8> o8,Func8<? super T1,? super T2,? super T3,? super T4,? super T5,? super T6,? super T7,? super T8,? extends R> combineFunction)
Observable
honors backpressure from downstream. The sourceObservable
s are requested in a bounded manner, however, their backpressure is not enforced (the operator won't signalMissingBackpressureException
) and may lead toOutOfMemoryError
due to internal buffer bloat.combineLatest
does not operate by default on a particularScheduler
.T1
- the element type of the first sourceT2
- the element type of the second sourceT3
- the element type of the third sourceT4
- the element type of the fourth sourceT5
- the element type of the fifth sourceT6
- the element type of the sixth sourceT7
- the element type of the seventh sourceT8
- the element type of the eighth sourceR
- the combined output typeo1
- the first source Observableo2
- the second source Observableo3
- the third source Observableo4
- the fourth source Observableo5
- the fifth source Observableo6
- the sixth source Observableo7
- the seventh source Observableo8
- the eighth source ObservablecombineFunction
- the aggregation function used to combine the items emitted by the source Observablespublic static <T1,T2,T3,T4,T5,T6,T7,T8,T9,R> Observable<R> combineLatest(Observable<? extends T1> o1,Observable<? extends T2> o2,Observable<? extends T3> o3,Observable<? extends T4> o4,Observable<? extends T5> o5,Observable<? extends T6> o6,Observable<? extends T7> o7,Observable<? extends T8> o8,Observable<? extends T9> o9,Func9<? super T1,? super T2,? super T3,? super T4,? super T5,? super T6,? super T7,? super T8,? super T9,? extends R> combineFunction)
Observable
honors backpressure from downstream. The sourceObservable
s are requested in a bounded manner, however, their backpressure is not enforced (the operator won't signalMissingBackpressureException
) and may lead toOutOfMemoryError
due to internal buffer bloat.combineLatest
does not operate by default on a particularScheduler
.T1
- the element type of the first sourceT2
- the element type of the second sourceT3
- the element type of the third sourceT4
- the element type of the fourth sourceT5
- the element type of the fifth sourceT6
- the element type of the sixth sourceT7
- the element type of the seventh sourceT8
- the element type of the eighth sourceT9
- the element type of the ninth sourceR
- the combined output typeo1
- the first source Observableo2
- the second source Observableo3
- the third source Observableo4
- the fourth source Observableo5
- the fifth source Observableo6
- the sixth source Observableo7
- the seventh source Observableo8
- the eighth source Observableo9
- the ninth source ObservablecombineFunction
- the aggregation function used to combine the items emitted by the source Observablespublic static <T,R> Observable<R> combineLatest(java.util.List<? extendsObservable<? extends T>> sources,FuncN<? extends R> combineFunction)
Observable
honors backpressure from downstream. The sourceObservable
s are requested in a bounded manner, however, their backpressure is not enforced (the operator won't signalMissingBackpressureException
) and may lead toOutOfMemoryError
due to internal buffer bloat.combineLatest
does not operate by default on a particularScheduler
.T
- the common base type of source valuesR
- the result typesources
- the list of source ObservablescombineFunction
- the aggregation function used to combine the items emitted by the source Observablespublic static <T,R> Observable<R> combineLatest(java.lang.Iterable<? extendsObservable<? extends T>> sources,FuncN<? extends R> combineFunction)
Observable
honors backpressure from downstream. The sourceObservable
s are requested in a bounded manner, however, their backpressure is not enforced (the operator won't signalMissingBackpressureException
) and may lead toOutOfMemoryError
due to internal buffer bloat.combineLatest
does not operate by default on a particularScheduler
.T
- the common base type of source valuesR
- the result typesources
- the collection of source ObservablescombineFunction
- the aggregation function used to combine the items emitted by the source Observablespublic static <T,R> Observable<R> combineLatestDelayError(java.lang.Iterable<? extendsObservable<? extends T>> sources,FuncN<? extends R> combineFunction)
Observable
honors backpressure from downstream. The sourceObservable
s are requested in a bounded manner, however, their backpressure is not enforced (the operator won't signalMissingBackpressureException
) and may lead toOutOfMemoryError
due to internal buffer bloat.combineLatest
does not operate by default on a particularScheduler
.T
- the common base type of source valuesR
- the result typesources
- the collection of source ObservablescombineFunction
- the aggregation function used to combine the items emitted by the source Observablespublic static <T> Observable<T> concat(java.lang.Iterable<? extendsObservable<? extends T>> sequences)
Observable
sources are expected to honor backpressure as well. If any of the sourceObservable
s violate this, itmay throw anIllegalStateException
when the sourceObservable
completes.concat
does not operate by default on a particularScheduler
.T
- the common element base typesequences
- the Iterable of Observablespublic static <T> Observable<T> concat(Observable<? extendsObservable<? extends T>> observables)
Observable
sources are expected to honor backpressure as well. If the outer violates this, aMissingBackpressureException
is signalled. If any of the innerObservable
s violates this, itmay throw anIllegalStateException
when an innerObservable
completes.concat
does not operate by default on a particularScheduler
.T
- the common element base typeobservables
- an Observable that emits Observablesobservables
, one after the other, without interleaving thempublic static <T> Observable<T> concat(Observable<? extends T> t1,Observable<? extends T> t2)
Observable
sources are expected to honor backpressure as well. If any of the sourceObservable
s violate this, itmay throw anIllegalStateException
when the sourceObservable
completes.concat
does not operate by default on a particularScheduler
.T
- the common element base typet1
- an Observable to be concatenatedt2
- an Observable to be concatenatedpublic static <T> Observable<T> concat(Observable<? extends T> t1,Observable<? extends T> t2,Observable<? extends T> t3)
Observable
sources are expected to honor backpressure as well. If any of the sourceObservable
s violate this, itmay throw anIllegalStateException
when the sourceObservable
completes.concat
does not operate by default on a particularScheduler
.T
- the common element base typet1
- an Observable to be concatenatedt2
- an Observable to be concatenatedt3
- an Observable to be concatenatedpublic static <T> Observable<T> concat(Observable<? extends T> t1,Observable<? extends T> t2,Observable<? extends T> t3,Observable<? extends T> t4)
Observable
sources are expected to honor backpressure as well. If any of the sourceObservable
s violate this, itmay throw anIllegalStateException
when the sourceObservable
completes.concat
does not operate by default on a particularScheduler
.T
- the common element base typet1
- an Observable to be concatenatedt2
- an Observable to be concatenatedt3
- an Observable to be concatenatedt4
- an Observable to be concatenatedpublic static <T> Observable<T> concat(Observable<? extends T> t1,Observable<? extends T> t2,Observable<? extends T> t3,Observable<? extends T> t4,Observable<? extends T> t5)
Observable
sources are expected to honor backpressure as well. If any of the sourceObservable
s violate this, itmay throw anIllegalStateException
when the sourceObservable
completes.concat
does not operate by default on a particularScheduler
.T
- the common element base typet1
- an Observable to be concatenatedt2
- an Observable to be concatenatedt3
- an Observable to be concatenatedt4
- an Observable to be concatenatedt5
- an Observable to be concatenatedpublic static <T> Observable<T> concat(Observable<? extends T> t1,Observable<? extends T> t2,Observable<? extends T> t3,Observable<? extends T> t4,Observable<? extends T> t5,Observable<? extends T> t6)
Observable
sources are expected to honor backpressure as well. If any of the sourceObservable
s violate this, itmay throw anIllegalStateException
when the sourceObservable
completes.concat
does not operate by default on a particularScheduler
.T
- the common element base typet1
- an Observable to be concatenatedt2
- an Observable to be concatenatedt3
- an Observable to be concatenatedt4
- an Observable to be concatenatedt5
- an Observable to be concatenatedt6
- an Observable to be concatenatedpublic static <T> Observable<T> concat(Observable<? extends T> t1,Observable<? extends T> t2,Observable<? extends T> t3,Observable<? extends T> t4,Observable<? extends T> t5,Observable<? extends T> t6,Observable<? extends T> t7)
Observable
sources are expected to honor backpressure as well. If any of the sourceObservable
s violate this, itmay throw anIllegalStateException
when the sourceObservable
completes.concat
does not operate by default on a particularScheduler
.T
- the common element base typet1
- an Observable to be concatenatedt2
- an Observable to be concatenatedt3
- an Observable to be concatenatedt4
- an Observable to be concatenatedt5
- an Observable to be concatenatedt6
- an Observable to be concatenatedt7
- an Observable to be concatenatedpublic static <T> Observable<T> concat(Observable<? extends T> t1,Observable<? extends T> t2,Observable<? extends T> t3,Observable<? extends T> t4,Observable<? extends T> t5,Observable<? extends T> t6,Observable<? extends T> t7,Observable<? extends T> t8)
Observable
sources are expected to honor backpressure as well. If any of the sourceObservable
s violate this, itmay throw anIllegalStateException
when the sourceObservable
completes.concat
does not operate by default on a particularScheduler
.T
- the common element base typet1
- an Observable to be concatenatedt2
- an Observable to be concatenatedt3
- an Observable to be concatenatedt4
- an Observable to be concatenatedt5
- an Observable to be concatenatedt6
- an Observable to be concatenatedt7
- an Observable to be concatenatedt8
- an Observable to be concatenatedpublic static <T> Observable<T> concat(Observable<? extends T> t1,Observable<? extends T> t2,Observable<? extends T> t3,Observable<? extends T> t4,Observable<? extends T> t5,Observable<? extends T> t6,Observable<? extends T> t7,Observable<? extends T> t8,Observable<? extends T> t9)
Observable
sources are expected to honor backpressure as well. If any of the sourceObservable
s violate this, itmay throw anIllegalStateException
when the sourceObservable
completes.concat
does not operate by default on a particularScheduler
.T
- the common element base typet1
- an Observable to be concatenatedt2
- an Observable to be concatenatedt3
- an Observable to be concatenatedt4
- an Observable to be concatenatedt5
- an Observable to be concatenatedt6
- an Observable to be concatenatedt7
- an Observable to be concatenatedt8
- an Observable to be concatenatedt9
- an Observable to be concatenatedpublic static <T> Observable<T> concatDelayError(Observable<? extendsObservable<? extends T>> sources)
concatDelayError
fully supports backpressure.concatDelayError
does not operate by default on a particularScheduler
.T
- the common element base typesources
- the Observable sequence of Observablespublic static <T> Observable<T> concatDelayError(java.lang.Iterable<? extendsObservable<? extends T>> sources)
Observable
sources are expected to honor backpressure as well. If the outer violates this, aMissingBackpressureException
is signalled. If any of the innerObservable
s violates this, itmay throw anIllegalStateException
when an innerObservable
completes.concatDelayError
does not operate by default on a particularScheduler
.T
- the common element base typesources
- the Iterable sequence of Observablespublic static <T> Observable<T> concatDelayError(Observable<? extends T> t1,Observable<? extends T> t2)
Observable
sources are expected to honor backpressure as well. If any of the sourceObservable
s violate this, itmay throw anIllegalStateException
when the sourceObservable
completes.concatDelayError
does not operate by default on a particularScheduler
.T
- the common element base typet1
- an Observable to be concatenatedt2
- an Observable to be concatenatedpublic static <T> Observable<T> concatDelayError(Observable<? extends T> t1,Observable<? extends T> t2,Observable<? extends T> t3)
Observable
sources are expected to honor backpressure as well. If any of the sourceObservable
s violate this, itmay throw anIllegalStateException
when the sourceObservable
completes.concatDelayError
does not operate by default on a particularScheduler
.T
- the common element base typet1
- an Observable to be concatenatedt2
- an Observable to be concatenatedt3
- an Observable to be concatenatedpublic static <T> Observable<T> concatDelayError(Observable<? extends T> t1,Observable<? extends T> t2,Observable<? extends T> t3,Observable<? extends T> t4)
Observable
sources are expected to honor backpressure as well. If any of the sourceObservable
s violate this, itmay throw anIllegalStateException
when the sourceObservable
completes.concatDelayError
does not operate by default on a particularScheduler
.T
- the common element base typet1
- an Observable to be concatenatedt2
- an Observable to be concatenatedt3
- an Observable to be concatenatedt4
- an Observable to be concatenatedpublic static <T> Observable<T> concatDelayError(Observable<? extends T> t1,Observable<? extends T> t2,Observable<? extends T> t3,Observable<? extends T> t4,Observable<? extends T> t5)
Observable
sources are expected to honor backpressure as well. If any of the sourceObservable
s violate this, itmay throw anIllegalStateException
when the sourceObservable
completes.concatDelayError
does not operate by default on a particularScheduler
.T
- the common element base typet1
- an Observable to be concatenatedt2
- an Observable to be concatenatedt3
- an Observable to be concatenatedt4
- an Observable to be concatenatedt5
- an Observable to be concatenatedpublic static <T> Observable<T> concatDelayError(Observable<? extends T> t1,Observable<? extends T> t2,Observable<? extends T> t3,Observable<? extends T> t4,Observable<? extends T> t5,Observable<? extends T> t6)
Observable
sources are expected to honor backpressure as well. If any of the sourceObservable
s violate this, itmay throw anIllegalStateException
when the sourceObservable
completes.concatDelayError
does not operate by default on a particularScheduler
.T
- the common element base typet1
- an Observable to be concatenatedt2
- an Observable to be concatenatedt3
- an Observable to be concatenatedt4
- an Observable to be concatenatedt5
- an Observable to be concatenatedt6
- an Observable to be concatenatedpublic static <T> Observable<T> concatDelayError(Observable<? extends T> t1,Observable<? extends T> t2,Observable<? extends T> t3,Observable<? extends T> t4,Observable<? extends T> t5,Observable<? extends T> t6,Observable<? extends T> t7)
Observable
sources are expected to honor backpressure as well. If any of the sourceObservable
s violate this, itmay throw anIllegalStateException
when the sourceObservable
completes.concatDelayError
does not operate by default on a particularScheduler
.T
- the common element base typet1
- an Observable to be concatenatedt2
- an Observable to be concatenatedt3
- an Observable to be concatenatedt4
- an Observable to be concatenatedt5
- an Observable to be concatenatedt6
- an Observable to be concatenatedt7
- an Observable to be concatenatedpublic static <T> Observable<T> concatDelayError(Observable<? extends T> t1,Observable<? extends T> t2,Observable<? extends T> t3,Observable<? extends T> t4,Observable<? extends T> t5,Observable<? extends T> t6,Observable<? extends T> t7,Observable<? extends T> t8)
Observable
sources are expected to honor backpressure as well. If any of the sourceObservable
s violate this, itmay throw anIllegalStateException
when the sourceObservable
completes.concatDelayError
does not operate by default on a particularScheduler
.T
- the common element base typet1
- an Observable to be concatenatedt2
- an Observable to be concatenatedt3
- an Observable to be concatenatedt4
- an Observable to be concatenatedt5
- an Observable to be concatenatedt6
- an Observable to be concatenatedt7
- an Observable to be concatenatedt8
- an Observable to be concatenatedpublic static <T> Observable<T> concatDelayError(Observable<? extends T> t1,Observable<? extends T> t2,Observable<? extends T> t3,Observable<? extends T> t4,Observable<? extends T> t5,Observable<? extends T> t6,Observable<? extends T> t7,Observable<? extends T> t8,Observable<? extends T> t9)
Observable
sources are expected to honor backpressure as well. If any of the sourceObservable
s violate this, itmay throw anIllegalStateException
when the sourceObservable
completes.concatDelayError
does not operate by default on a particularScheduler
.T
- the common element base typet1
- an Observable to be concatenatedt2
- an Observable to be concatenatedt3
- an Observable to be concatenatedt4
- an Observable to be concatenatedt5
- an Observable to be concatenatedt6
- an Observable to be concatenatedt7
- an Observable to be concatenatedt8
- an Observable to be concatenatedt9
- an Observable to be concatenatedpublic static <T> Observable<T> defer(Func0<Observable<T>> observableFactory)
The defer Observer allows you to defer or delay emitting items from an Observable until such time as an Observer subscribes to the Observable. This allows anObserver
to easily obtain updates or a refreshed version of the sequence.
Observable
returned by theobservableFactory
.defer
does not operate by default on a particularScheduler
.T
- the type of the items emitted by the ObservableobservableFactory
- the Observable factory function to invoke for eachObserver
that subscribes to the resulting ObservableObserver
s' subscriptions trigger an invocation of the given Observable factory functionpublic static <T> Observable<T> empty()
Observer
and immediately invokes itsonCompleted
method.empty
does not operate by default on a particularScheduler
.T
- the type of the items (ostensibly) emitted by the ObservableObserver
but immediately invokes theObserver
'sonCompleted
methodpublic static <T> Observable<T> error(java.lang.Throwable exception)
Observer
'sonError
method when the Observer subscribes to it.error
does not operate by default on a particularScheduler
.T
- the type of the items (ostensibly) emitted by the Observableexception
- the particular Throwable to pass toonError
Observer
'sonError
method when the Observer subscribes to itpublic static <T> Observable<T> from(java.util.concurrent.Future<? extends T> future)
Future
into an Observable. You can convert any object that supports theFuture
interface into an Observable that emits the return value of theFuture.get()
method of that object, by passing the object into thefrom
method.
Important note: This Observable is blocking; you cannot unsubscribe from it.
from
does not operate by default on a particularScheduler
.T
- the type of object that theFuture
returns, and also the type of item to be emitted by the resulting Observablefuture
- the sourceFuture
Future
public static <T> Observable<T> from(java.util.concurrent.Future<? extends T> future, long timeout, java.util.concurrent.TimeUnit unit)
Future
into an Observable, with a timeout on the Future. You can convert any object that supports theFuture
interface into an Observable that emits the return value of theFuture.get()
method of that object, by passing the object into thefrom
method.
Important note: This Observable is blocking; you cannot unsubscribe from it.
from
does not operate by default on a particularScheduler
.T
- the type of object that theFuture
returns, and also the type of item to be emitted by the resulting Observablefuture
- the sourceFuture
timeout
- the maximum time to wait before callingget
unit
- theTimeUnit
of thetimeout
argumentFuture
public static <T> Observable<T> from(java.util.concurrent.Future<? extends T> future,Scheduler scheduler)
Future
, operating on a specifiedScheduler
, into an Observable. You can convert any object that supports theFuture
interface into an Observable that emits the return value of theFuture.get()
method of that object, by passing the object into thefrom
method.
Scheduler
this operator will useT
- the type of object that theFuture
returns, and also the type of item to be emitted by the resulting Observablefuture
- the sourceFuture
scheduler
- theScheduler
to wait for the Future on. Use a Scheduler such asSchedulers.io()
that can block and wait on the FutureFuture
public static <T> Observable<T> from(java.lang.Iterable<? extends T> iterable)
Iterable
sequence into an Observable that emits the items in the sequence.iterable
on demand (i.e., when requested).from
does not operate by default on a particularScheduler
.T
- the type of items in theIterable
sequence and the type of items to be emitted by the resulting Observableiterable
- the sourceIterable
sequenceIterable
sequencepublic static <T> Observable<T> from(T[] array)
array
on demand (i.e., when requested).from
does not operate by default on a particularScheduler
.T
- the type of items in the Array and the type of items to be emitted by the resulting Observablearray
- the source Arraypublic static <T> Observable<T> fromCallable(java.util.concurrent.Callable<? extends T> func)
This allows you to defer the execution of the function you specify until an observer subscribes to the Observable. That is to say, it makes the function "lazy."
fromCallable
does not operate by default on a particularScheduler
.T
- the type of the item emitted by the Observablefunc
- a function, the execution of which should be deferred;fromCallable
will invoke this function only when an observer subscribes to the Observable thatfromCallable
returnsObserver
s' subscriptions trigger an invocation of the given functiondefer(Func0)
public static Observable<java.lang.Long> interval(long interval, java.util.concurrent.TimeUnit unit)
interval
operates by default on thecomputation
Scheduler
.interval
- interval size in time units (see below)unit
- time units to use for the interval sizepublic static Observable<java.lang.Long> interval(long interval, java.util.concurrent.TimeUnit unit,Scheduler scheduler)
MissingBackpressureException
at some point in the chain. Consumers should consider applying one of theonBackpressureXXX
operators as well.Scheduler
this operator will useinterval
- interval size in time units (see below)unit
- time units to use for the interval sizescheduler
- the Scheduler to use for scheduling the itemspublic static Observable<java.lang.Long> interval(long initialDelay, long period, java.util.concurrent.TimeUnit unit)
0L
after theinitialDelay
and ever increasing numbers after eachperiod
of time thereafter.MissingBackpressureException
at some point in the chain. Consumers should consider applying one of theonBackpressureXXX
operators as well.interval
operates by default on thecomputation
Scheduler
.initialDelay
- the initial delay time to wait before emitting the first value of 0Lperiod
- the period of time between emissions of the subsequent numbersunit
- the time unit for bothinitialDelay
andperiod
initialDelay
and ever increasing numbers after eachperiod
of time thereafterpublic static Observable<java.lang.Long> interval(long initialDelay, long period, java.util.concurrent.TimeUnit unit,Scheduler scheduler)
0L
after theinitialDelay
and ever increasing numbers after eachperiod
of time thereafter, on a specifiedScheduler
.MissingBackpressureException
at some point in the chain. Consumers should consider applying one of theonBackpressureXXX
operators as well.Scheduler
this operator will useinitialDelay
- the initial delay time to wait before emitting the first value of 0Lperiod
- the period of time between emissions of the subsequent numbersunit
- the time unit for bothinitialDelay
andperiod
scheduler
- the Scheduler on which the waiting happens and items are emittedinitialDelay
and ever increasing numbers after eachperiod
of time thereafter, while running on the given Schedulerpublic static <T> Observable<T> just(T value)
To convert any object into an Observable that emits that object, pass that object into thejust
method.
This is similar to thefrom(java.lang.Object[])
method, except thatfrom
will convert anIterable
object into an Observable that emits each of the items in the Iterable, one at a time, while thejust
method converts an Iterable into an Observable that emits the entire Iterable as a single item.
just
does not operate by default on a particularScheduler
.T
- the type of that itemvalue
- the item to emitvalue
as a single item and then completespublic static <T> Observable<T> just(T t1, T t2)
just
does not operate by default on a particularScheduler
.T
- the type of these itemst1
- first itemt2
- second itempublic static <T> Observable<T> just(T t1, T t2, T t3)
just
does not operate by default on a particularScheduler
.T
- the type of these itemst1
- first itemt2
- second itemt3
- third itempublic static <T> Observable<T> just(T t1, T t2, T t3, T t4)
just
does not operate by default on a particularScheduler
.T
- the type of these itemst1
- first itemt2
- second itemt3
- third itemt4
- fourth itempublic static <T> Observable<T> just(T t1, T t2, T t3, T t4, T t5)
just
does not operate by default on a particularScheduler
.T
- the type of these itemst1
- first itemt2
- second itemt3
- third itemt4
- fourth itemt5
- fifth itempublic static <T> Observable<T> just(T t1, T t2, T t3, T t4, T t5, T t6)
just
does not operate by default on a particularScheduler
.T
- the type of these itemst1
- first itemt2
- second itemt3
- third itemt4
- fourth itemt5
- fifth itemt6
- sixth itempublic static <T> Observable<T> just(T t1, T t2, T t3, T t4, T t5, T t6, T t7)
just
does not operate by default on a particularScheduler
.T
- the type of these itemst1
- first itemt2
- second itemt3
- third itemt4
- fourth itemt5
- fifth itemt6
- sixth itemt7
- seventh itempublic static <T> Observable<T> just(T t1, T t2, T t3, T t4, T t5, T t6, T t7, T t8)
just
does not operate by default on a particularScheduler
.T
- the type of these itemst1
- first itemt2
- second itemt3
- third itemt4
- fourth itemt5
- fifth itemt6
- sixth itemt7
- seventh itemt8
- eighth itempublic static <T> Observable<T> just(T t1, T t2, T t3, T t4, T t5, T t6, T t7, T t8, T t9)
just
does not operate by default on a particularScheduler
.T
- the type of these itemst1
- first itemt2
- second itemt3
- third itemt4
- fourth itemt5
- fifth itemt6
- sixth itemt7
- seventh itemt8
- eighth itemt9
- ninth itempublic static <T> Observable<T> just(T t1, T t2, T t3, T t4, T t5, T t6, T t7, T t8, T t9, T t10)
just
does not operate by default on a particularScheduler
.T
- the type of these itemst1
- first itemt2
- second itemt3
- third itemt4
- fourth itemt5
- fifth itemt6
- sixth itemt7
- seventh itemt8
- eighth itemt9
- ninth itemt10
- tenth itempublic static <T> Observable<T> merge(java.lang.Iterable<? extendsObservable<? extends T>> sequences)
You can combine the items emitted by multiple Observables so that they appear as a single Observable, by using themerge
method.
Observable
s are expected to honor backpressure; if violated, the operatormay signalMissingBackpressureException
.merge
does not operate by default on a particularScheduler
.T
- the common element base typesequences
- the Iterable of Observablespublic static <T> Observable<T> merge(java.lang.Iterable<? extendsObservable<? extends T>> sequences, int maxConcurrent)
You can combine the items emitted by multiple Observables so that they appear as a single Observable, by using themerge
method.
Observable
s are expected to honor backpressure; if violated, the operatormay signalMissingBackpressureException
.merge
does not operate by default on a particularScheduler
.T
- the common element base typesequences
- the Iterable of ObservablesmaxConcurrent
- the maximum number of Observables that may be subscribed to concurrentlyjava.lang.IllegalArgumentException
- ifmaxConcurrent
is less than or equal to 0public static <T> Observable<T> merge(Observable<? extendsObservable<? extends T>> source)
You can combine the items emitted by multiple Observables so that they appear as a single Observable, by using themerge
method.
Observable
is consumed in unbounded mode (i.e., no backpressure is applied to it). The innerObservable
s are expected to honor backpressure; if violated, the operatormay signalMissingBackpressureException
.merge
does not operate by default on a particularScheduler
.T
- the common element base typesource
- an Observable that emits Observablessource
Observablepublic static <T> Observable<T> merge(Observable<? extendsObservable<? extends T>> source, int maxConcurrent)
You can combine the items emitted by multiple Observables so that they appear as a single Observable, by using themerge
method.
Observable
s are expected to honor backpressure; if violated, the operatormay signalMissingBackpressureException
.merge
does not operate by default on a particularScheduler
.T
- the common element base typesource
- an Observable that emits ObservablesmaxConcurrent
- the maximum number of Observables that may be subscribed to concurrentlysource
Observablejava.lang.IllegalArgumentException
- ifmaxConcurrent
is less than or equal to 0public static <T> Observable<T> merge(Observable<? extends T> t1,Observable<? extends T> t2)
You can combine items emitted by multiple Observables so that they appear as a single Observable, by using themerge
method.
Observable
s are expected to honor backpressure; if violated, the operatormay signalMissingBackpressureException
.merge
does not operate by default on a particularScheduler
.T
- the common element base typet1
- an Observable to be mergedt2
- an Observable to be mergedpublic static <T> Observable<T> merge(Observable<? extends T> t1,Observable<? extends T> t2,Observable<? extends T> t3)
You can combine items emitted by multiple Observables so that they appear as a single Observable, by using themerge
method.
Observable
s are expected to honor backpressure; if violated, the operatormay signalMissingBackpressureException
.merge
does not operate by default on a particularScheduler
.T
- the common element base typet1
- an Observable to be mergedt2
- an Observable to be mergedt3
- an Observable to be mergedpublic static <T> Observable<T> merge(Observable<? extends T> t1,Observable<? extends T> t2,Observable<? extends T> t3,Observable<? extends T> t4)
You can combine items emitted by multiple Observables so that they appear as a single Observable, by using themerge
method.
Observable
s are expected to honor backpressure; if violated, the operatormay signalMissingBackpressureException
.merge
does not operate by default on a particularScheduler
.T
- the common element base typet1
- an Observable to be mergedt2
- an Observable to be mergedt3
- an Observable to be mergedt4
- an Observable to be mergedpublic static <T> Observable<T> merge(Observable<? extends T> t1,Observable<? extends T> t2,Observable<? extends T> t3,Observable<? extends T> t4,Observable<? extends T> t5)
You can combine items emitted by multiple Observables so that they appear as a single Observable, by using themerge
method.
Observable
s are expected to honor backpressure; if violated, the operatormay signalMissingBackpressureException
.merge
does not operate by default on a particularScheduler
.T
- the common element base typet1
- an Observable to be mergedt2
- an Observable to be mergedt3
- an Observable to be mergedt4
- an Observable to be mergedt5
- an Observable to be mergedpublic static <T> Observable<T> merge(Observable<? extends T> t1,Observable<? extends T> t2,Observable<? extends T> t3,Observable<? extends T> t4,Observable<? extends T> t5,Observable<? extends T> t6)
You can combine items emitted by multiple Observables so that they appear as a single Observable, by using themerge
method.
Observable
s are expected to honor backpressure; if violated, the operatormay signalMissingBackpressureException
.merge
does not operate by default on a particularScheduler
.T
- the common element base typet1
- an Observable to be mergedt2
- an Observable to be mergedt3
- an Observable to be mergedt4
- an Observable to be mergedt5
- an Observable to be mergedt6
- an Observable to be mergedpublic static <T> Observable<T> merge(Observable<? extends T> t1,Observable<? extends T> t2,Observable<? extends T> t3,Observable<? extends T> t4,Observable<? extends T> t5,Observable<? extends T> t6,Observable<? extends T> t7)
You can combine items emitted by multiple Observables so that they appear as a single Observable, by using themerge
method.
Observable
s are expected to honor backpressure; if violated, the operatormay signalMissingBackpressureException
.merge
does not operate by default on a particularScheduler
.T
- the common element base typet1
- an Observable to be mergedt2
- an Observable to be mergedt3
- an Observable to be mergedt4
- an Observable to be mergedt5
- an Observable to be mergedt6
- an Observable to be mergedt7
- an Observable to be mergedpublic static <T> Observable<T> merge(Observable<? extends T> t1,Observable<? extends T> t2,Observable<? extends T> t3,Observable<? extends T> t4,Observable<? extends T> t5,Observable<? extends T> t6,Observable<? extends T> t7,Observable<? extends T> t8)
You can combine items emitted by multiple Observables so that they appear as a single Observable, by using themerge
method.
Observable
s are expected to honor backpressure; if violated, the operatormay signalMissingBackpressureException
.merge
does not operate by default on a particularScheduler
.T
- the common element base typet1
- an Observable to be mergedt2
- an Observable to be mergedt3
- an Observable to be mergedt4
- an Observable to be mergedt5
- an Observable to be mergedt6
- an Observable to be mergedt7
- an Observable to be mergedt8
- an Observable to be mergedpublic static <T> Observable<T> merge(Observable<? extends T> t1,Observable<? extends T> t2,Observable<? extends T> t3,Observable<? extends T> t4,Observable<? extends T> t5,Observable<? extends T> t6,Observable<? extends T> t7,Observable<? extends T> t8,Observable<? extends T> t9)
You can combine items emitted by multiple Observables so that they appear as a single Observable, by using themerge
method.
Observable
s are expected to honor backpressure; if violated, the operatormay signalMissingBackpressureException
.merge
does not operate by default on a particularScheduler
.T
- the common element base typet1
- an Observable to be mergedt2
- an Observable to be mergedt3
- an Observable to be mergedt4
- an Observable to be mergedt5
- an Observable to be mergedt6
- an Observable to be mergedt7
- an Observable to be mergedt8
- an Observable to be mergedt9
- an Observable to be mergedpublic static <T> Observable<T> merge(Observable<? extends T>[] sequences)
You can combine items emitted by multiple Observables so that they appear as a single Observable, by using themerge
method.
Observable
s are expected to honor backpressure; if violated, the operatormay signalMissingBackpressureException
.merge
does not operate by default on a particularScheduler
.T
- the common element base typesequences
- the Array of Observablespublic static <T> Observable<T> merge(Observable<? extends T>[] sequences, int maxConcurrent)
You can combine items emitted by multiple Observables so that they appear as a single Observable, by using themerge
method.
Observable
s are expected to honor backpressure; if violated, the operatormay signalMissingBackpressureException
.merge
does not operate by default on a particularScheduler
.T
- the common element base typesequences
- the Array of ObservablesmaxConcurrent
- the maximum number of Observables that may be subscribed to concurrentlypublic static <T> Observable<T> mergeDelayError(Observable<? extendsObservable<? extends T>> source)
This behaves likemerge(Observable)
except that if any of the merged Observables notify of an error viaonError
,mergeDelayError
will refrain from propagating that error notification until all of the merged Observables have finished emitting items.
Even if multiple merged Observables sendonError
notifications,mergeDelayError
will only invoke theonError
method of its Observers once.
Observable
is consumed in unbounded mode (i.e., no backpressure is applied to it). The innerObservable
s are expected to honor backpressure; if violated, the operatormay signalMissingBackpressureException
.mergeDelayError
does not operate by default on a particularScheduler
.T
- the common element base typesource
- an Observable that emits Observablessource
Observablepublic static <T> Observable<T> mergeDelayError(Observable<? extendsObservable<? extends T>> source, int maxConcurrent)
This behaves likemerge(Observable)
except that if any of the merged Observables notify of an error viaonError
,mergeDelayError
will refrain from propagating that error notification until all of the merged Observables have finished emitting items.
Even if multiple merged Observables sendonError
notifications,mergeDelayError
will only invoke theonError
method of its Observers once.
Observable
s are expected to honor backpressure; if violated, the operatormay signalMissingBackpressureException
.mergeDelayError
does not operate by default on a particularScheduler
.T
- the common element base typesource
- an Observable that emits ObservablesmaxConcurrent
- the maximum number of Observables that may be subscribed to concurrentlysource
Observablepublic static <T> Observable<T> mergeDelayError(java.lang.Iterable<? extendsObservable<? extends T>> sequences)
This behaves likemerge(Observable)
except that if any of the merged Observables notify of an error viaonError
,mergeDelayError
will refrain from propagating that error notification until all of the merged Observables have finished emitting items.
Even if multiple merged Observables sendonError
notifications,mergeDelayError
will only invoke theonError
method of its Observers once.
mergeDelayError
does not operate by default on a particularScheduler
.T
- the common element base typesequences
- the Iterable of Observablespublic static <T> Observable<T> mergeDelayError(java.lang.Iterable<? extendsObservable<? extends T>> sequences, int maxConcurrent)
This behaves likemerge(Observable)
except that if any of the merged Observables notify of an error viaonError
,mergeDelayError
will refrain from propagating that error notification until all of the merged Observables have finished emitting items.
Even if multiple merged Observables sendonError
notifications,mergeDelayError
will only invoke theonError
method of its Observers once.
mergeDelayError
does not operate by default on a particularScheduler
.T
- the common element base typesequences
- the Iterable of ObservablesmaxConcurrent
- the maximum number of Observables that may be subscribed to concurrentlypublic static <T> Observable<T> mergeDelayError(Observable<? extends T> t1,Observable<? extends T> t2)
This behaves likemerge(Observable, Observable)
except that if any of the merged Observables notify of an error viaonError
,mergeDelayError
will refrain from propagating that error notification until all of the merged Observables have finished emitting items.
Even if both merged Observables sendonError
notifications,mergeDelayError
will only invoke theonError
method of its Observers once.
Observable
s are expected to honor backpressure; if violated, the operatormay signalMissingBackpressureException
.mergeDelayError
does not operate by default on a particularScheduler
.T
- the common element base typet1
- an Observable to be mergedt2
- an Observable to be mergedpublic static <T> Observable<T> mergeDelayError(Observable<? extends T> t1,Observable<? extends T> t2,Observable<? extends T> t3)
This behaves likemerge(Observable, Observable, Observable)
except that if any of the merged Observables notify of an error viaonError
,mergeDelayError
will refrain from propagating that error notification until all of the merged Observables have finished emitting items.
Even if multiple merged Observables sendonError
notifications,mergeDelayError
will only invoke theonError
method of its Observers once.
Observable
s are expected to honor backpressure; if violated, the operatormay signalMissingBackpressureException
.mergeDelayError
does not operate by default on a particularScheduler
.T
- the common element base typet1
- an Observable to be mergedt2
- an Observable to be mergedt3
- an Observable to be mergedpublic static <T> Observable<T> mergeDelayError(Observable<? extends T> t1,Observable<? extends T> t2,Observable<? extends T> t3,Observable<? extends T> t4)
This behaves likemerge(Observable, Observable, Observable, Observable)
except that if any of the merged Observables notify of an error viaonError
,mergeDelayError
will refrain from propagating that error notification until all of the merged Observables have finished emitting items.
Even if multiple merged Observables sendonError
notifications,mergeDelayError
will only invoke theonError
method of its Observers once.
Observable
s are expected to honor backpressure; if violated, the operatormay signalMissingBackpressureException
.mergeDelayError
does not operate by default on a particularScheduler
.T
- the common element base typet1
- an Observable to be mergedt2
- an Observable to be mergedt3
- an Observable to be mergedt4
- an Observable to be mergedpublic static <T> Observable<T> mergeDelayError(Observable<? extends T> t1,Observable<? extends T> t2,Observable<? extends T> t3,Observable<? extends T> t4,Observable<? extends T> t5)
This behaves likemerge(Observable, Observable, Observable, Observable, Observable)
except that if any of the merged Observables notify of an error viaonError
,mergeDelayError
will refrain from propagating that error notification until all of the merged Observables have finished emitting items.
Even if multiple merged Observables sendonError
notifications,mergeDelayError
will only invoke theonError
method of its Observers once.
Observable
s are expected to honor backpressure; if violated, the operatormay signalMissingBackpressureException
.mergeDelayError
does not operate by default on a particularScheduler
.T
- the common element base typet1
- an Observable to be mergedt2
- an Observable to be mergedt3
- an Observable to be mergedt4
- an Observable to be mergedt5
- an Observable to be mergedpublic static <T> Observable<T> mergeDelayError(Observable<? extends T> t1,Observable<? extends T> t2,Observable<? extends T> t3,Observable<? extends T> t4,Observable<? extends T> t5,Observable<? extends T> t6)
This behaves likemerge(Observable, Observable, Observable, Observable, Observable, Observable)
except that if any of the merged Observables notify of an error viaonError
,mergeDelayError
will refrain from propagating that error notification until all of the merged Observables have finished emitting items.
Even if multiple merged Observables sendonError
notifications,mergeDelayError
will only invoke theonError
method of its Observers once.
Observable
s are expected to honor backpressure; if violated, the operatormay signalMissingBackpressureException
.mergeDelayError
does not operate by default on a particularScheduler
.T
- the common element base typet1
- an Observable to be mergedt2
- an Observable to be mergedt3
- an Observable to be mergedt4
- an Observable to be mergedt5
- an Observable to be mergedt6
- an Observable to be mergedpublic static <T> Observable<T> mergeDelayError(Observable<? extends T> t1,Observable<? extends T> t2,Observable<? extends T> t3,Observable<? extends T> t4,Observable<? extends T> t5,Observable<? extends T> t6,Observable<? extends T> t7)
This behaves likemerge(Observable, Observable, Observable, Observable, Observable, Observable, Observable)
except that if any of the merged Observables notify of an error viaonError
,mergeDelayError
will refrain from propagating that error notification until all of the merged Observables have finished emitting items.
Even if multiple merged Observables sendonError
notifications,mergeDelayError
will only invoke theonError
method of its Observers once.
Observable
s are expected to honor backpressure; if violated, the operatormay signalMissingBackpressureException
.mergeDelayError
does not operate by default on a particularScheduler
.T
- the common element base typet1
- an Observable to be mergedt2
- an Observable to be mergedt3
- an Observable to be mergedt4
- an Observable to be mergedt5
- an Observable to be mergedt6
- an Observable to be mergedt7
- an Observable to be mergedpublic static <T> Observable<T> mergeDelayError(Observable<? extends T> t1,Observable<? extends T> t2,Observable<? extends T> t3,Observable<? extends T> t4,Observable<? extends T> t5,Observable<? extends T> t6,Observable<? extends T> t7,Observable<? extends T> t8)
This behaves likemerge(Observable, Observable, Observable, Observable, Observable, Observable, Observable, Observable)
except that if any of the merged Observables notify of an error viaonError
,mergeDelayError
will refrain from propagating that error notification until all of the merged Observables have finished emitting items.
Even if multiple merged Observables sendonError
notifications,mergeDelayError
will only invoke theonError
method of its Observers once.
Observable
s are expected to honor backpressure; if violated, the operatormay signalMissingBackpressureException
.mergeDelayError
does not operate by default on a particularScheduler
.T
- the common element base typet1
- an Observable to be mergedt2
- an Observable to be mergedt3
- an Observable to be mergedt4
- an Observable to be mergedt5
- an Observable to be mergedt6
- an Observable to be mergedt7
- an Observable to be mergedt8
- an Observable to be mergedpublic static <T> Observable<T> mergeDelayError(Observable<? extends T> t1,Observable<? extends T> t2,Observable<? extends T> t3,Observable<? extends T> t4,Observable<? extends T> t5,Observable<? extends T> t6,Observable<? extends T> t7,Observable<? extends T> t8,Observable<? extends T> t9)
This behaves likemerge(Observable, Observable, Observable, Observable, Observable, Observable, Observable, Observable, Observable)
except that if any of the merged Observables notify of an error viaonError
,mergeDelayError
will refrain from propagating that error notification until all of the merged Observables have finished emitting items.
Even if multiple merged Observables sendonError
notifications,mergeDelayError
will only invoke theonError
method of its Observers once.
Observable
s are expected to honor backpressure; if violated, the operatormay signalMissingBackpressureException
.mergeDelayError
does not operate by default on a particularScheduler
.T
- the common element base typet1
- an Observable to be mergedt2
- an Observable to be mergedt3
- an Observable to be mergedt4
- an Observable to be mergedt5
- an Observable to be mergedt6
- an Observable to be mergedt7
- an Observable to be mergedt8
- an Observable to be mergedt9
- an Observable to be mergedpublic final Observable<Observable<T>> nest()
Observable<T>
into anObservable<Observable<T>>
that emits the source Observable as its single emission.nest
does not operate by default on a particularScheduler
.public static <T> Observable<T> never()
Observer
.This Observable is useful primarily for testing purposes.
never
does not operate by default on a particularScheduler
.T
- the type of items (not) emitted by the ObservableObserver
public static Observable<java.lang.Integer> range(int start, int count)
range
does not operate by default on a particularScheduler
.start
- the value of the first Integer in the sequencecount
- the number of sequential Integers to generatejava.lang.IllegalArgumentException
- ifcount
is less than zero, or ifstart
+count
− 1 exceedsInteger.MAX_VALUE
public static Observable<java.lang.Integer> range(int start, int count,Scheduler scheduler)
Scheduler
this operator will usestart
- the value of the first Integer in the sequencecount
- the number of sequential Integers to generatescheduler
- the Scheduler to run the generator loop onpublic static <T> Observable<java.lang.Boolean> sequenceEqual(Observable<? extends T> first,Observable<? extends T> second)
sequenceEqual
does not operate by default on a particularScheduler
.T
- the type of items emitted by each Observablefirst
- the first Observable to comparesecond
- the second Observable to comparepublic static <T> Observable<java.lang.Boolean> sequenceEqual(Observable<? extends T> first,Observable<? extends T> second,Func2<? super T,? super T,java.lang.Boolean> equality)
Observable
s are expected to honor backpressure; if violated, the operator signals aMissingBackpressureException
.sequenceEqual
does not operate by default on a particularScheduler
.T
- the type of items emitted by each Observablefirst
- the first Observable to comparesecond
- the second Observable to compareequality
- a function used to compare items emitted by each Observablepublic static <T> Observable<T> switchOnNext(Observable<? extendsObservable<? extends T>> sequenceOfSequences)
switchOnNext
subscribes to an Observable that emits Observables. Each time it observes one of these emitted Observables, the Observable returned byswitchOnNext
begins emitting the items emitted by that Observable. When a new Observable is emitted,switchOnNext
stops emitting items from the earlier-emitted Observable and begins emitting items from the new one.
The resulting Observable completes if both the outer Observable and the last inner Observable, if any, complete. If the outer Observable signals an onError, the inner Observable is unsubscribed and the error delivered in-sequence.
Observable
is consumed in an unbounded manner (i.e., without backpressure) and the innerObservable
s are expected to honor backpressure but it is not enforced; the operator won't signal aMissingBackpressureException
but the violationmay lead toOutOfMemoryError
due to internal buffer bloat.switchOnNext
does not operate by default on a particularScheduler
.T
- the item typesequenceOfSequences
- the source Observable that emits Observablespublic static <T> Observable<T> switchOnNextDelayError(Observable<? extendsObservable<? extends T>> sequenceOfSequences)
switchOnNext
subscribes to an Observable that emits Observables. Each time it observes one of these emitted Observables, the Observable returned byswitchOnNext
begins emitting the items emitted by that Observable. When a new Observable is emitted,switchOnNext
stops emitting items from the earlier-emitted Observable and begins emitting items from the new one.
The resulting Observable completes if both the main Observable and the last inner Observable, if any, complete. If the main Observable signals an onError, the termination of the last inner Observable will emit that error as is or wrapped into a CompositeException along with the other possible errors the former inner Observables signalled.
Observable
is consumed in an unbounded manner (i.e., without backpressure) and the innerObservable
s are expected to honor backpressure but it is not enforced; the operator won't signal aMissingBackpressureException
but the violationmay lead toOutOfMemoryError
due to internal buffer bloat.switchOnNext
does not operate by default on a particularScheduler
.T
- the item typesequenceOfSequences
- the source Observable that emits Observables@Deprecatedpublic static Observable<java.lang.Long> timer(long initialDelay, long period, java.util.concurrent.TimeUnit unit)
interval(long, long, TimeUnit)
instead0L
after theinitialDelay
and ever increasing numbers after eachperiod
of time thereafter.onBackpressureDrop(rx.functions.Action1<? super T>)
.timer
operates by default on thecomputation
Scheduler
.initialDelay
- the initial delay time to wait before emitting the first value of 0Lperiod
- the period of time between emissions of the subsequent numbersunit
- the time unit for bothinitialDelay
andperiod
initialDelay
and ever increasing numbers after eachperiod
of time thereafter@Deprecatedpublic static Observable<java.lang.Long> timer(long initialDelay, long period, java.util.concurrent.TimeUnit unit,Scheduler scheduler)
interval(long, long, TimeUnit, Scheduler)
instead0L
after theinitialDelay
and ever increasing numbers after eachperiod
of time thereafter, on a specifiedScheduler
.onBackpressureDrop(rx.functions.Action1<? super T>)
.Scheduler
this operator will useinitialDelay
- the initial delay time to wait before emitting the first value of 0Lperiod
- the period of time between emissions of the subsequent numbersunit
- the time unit for bothinitialDelay
andperiod
scheduler
- the Scheduler on which the waiting happens and items are emittedinitialDelay
and ever increasing numbers after eachperiod
of time thereafter, while running on the given Schedulerpublic static Observable<java.lang.Long> timer(long delay, java.util.concurrent.TimeUnit unit)
0L
after a specified delay, and then completes.onBackpressureDrop(rx.functions.Action1<? super T>)
.timer
operates by default on thecomputation
Scheduler
.delay
- the initial delay before emitting a single0L
unit
- time units to use fordelay
public static Observable<java.lang.Long> timer(long delay, java.util.concurrent.TimeUnit unit,Scheduler scheduler)
0L
after a specified delay, on a specified Scheduler, and then completes.onBackpressureDrop(rx.functions.Action1<? super T>)
.Scheduler
this operator will usedelay
- the initial delay before emitting a single 0Lunit
- time units to use fordelay
scheduler
- theScheduler
to use for scheduling the itempublic static <T,Resource> Observable<T> using(Func0<Resource> resourceFactory,Func1<? super Resource,? extendsObservable<? extends T>> observableFactory,Action1<? super Resource> disposeAction)
resourceFactory
.using
does not operate by default on a particularScheduler
.T
- the element type of the generated ObservableResource
- the type of the resource associated with the output sequenceresourceFactory
- the factory function to create a resource object that depends on the ObservableobservableFactory
- the factory function to create an ObservabledisposeAction
- the function that will dispose of the resourcepublic static <T,Resource> Observable<T> using(Func0<Resource> resourceFactory,Func1<? super Resource,? extendsObservable<? extends T>> observableFactory,Action1<? super Resource> disposeAction, boolean disposeEagerly)
disposeEagerly
totrue
and unsubscription does not occur before termination. Otherwise resource disposal will occur on unsubscription. Eager disposal is particularly appropriate for a synchronous Observable that reuses resources.disposeAction
will only be called once per subscription.resourceFactory
.using
does not operate by default on a particularScheduler
.T
- the element type of the generated ObservableResource
- the type of the resource associated with the output sequenceresourceFactory
- the factory function to create a resource object that depends on the ObservableobservableFactory
- the factory function to create an ObservabledisposeAction
- the function that will dispose of the resourcedisposeEagerly
- iftrue
then disposal will happen either on unsubscription or just before emission of a terminal event (onComplete
oronError
).public static <R> Observable<R> zip(java.lang.Iterable<? extendsObservable<?>> ws,FuncN<? extends R> zipFunction)
zip
applies this function in strict sequence, so the first item emitted by the new Observable will be the result of the function applied to the first item emitted by each of the source Observables; the second item emitted by the new Observable will be the result of the function applied to the second item emitted by each of those Observables; and so forth.
The resultingObservable<R>
returned fromzip
will invokeonNext
as many times as the number ofonNext
invocations of the source Observable that emits the fewest items.
The operator subscribes to its sources in order they are specified and completes eagerly if one of the sources is shorter than the rest while unsubscribing the other sources. Therefore, it is possible those other sources will never be able to run to completion (and thus not callingdoOnCompleted()
). This can also happen if the sources are exactly the same length; if source A completes and B has been consumed and is about to complete, the operator detects A won't be sending further values and it will unsubscribe B immediately. For example:
zip(Arrays.asList(range(1, 5).doOnCompleted(action1), range(6, 5).doOnCompleted(action2)), (a) -> a)
action1
will be called butaction2
won't.doOnUnsubscribed()
as well or useusing()
to do cleanup in case of completion or unsubscription.interval(long, TimeUnit)
may result in MissingBackpressureException, use one of theonBackpressureX
to handle similar, backpressure-ignoring sources.zip
does not operate by default on a particularScheduler
.R
- the zipped result typews
- an Iterable of source ObservableszipFunction
- a function that, when applied to an item emitted by each of the source Observables, results in an item that will be emitted by the resulting Observablepublic static <R> Observable<R> zip(Observable<?>[] ws,FuncN<? extends R> zipFunction)
zip
applies this function in strict sequence, so the first item emitted by the new Observable will be the result of the function applied to the first item emitted by each of the source Observables; the second item emitted by the new Observable will be the result of the function applied to the second item emitted by each of those Observables; and so forth.
The resultingObservable<R>
returned fromzip
will invokeonNext
as many times as the number ofonNext
invocations of the source Observable that emits the fewest items.
The operator subscribes to its sources in order they are specified and completes eagerly if one of the sources is shorter than the rest while unsubscribing the other sources. Therefore, it is possible those other sources will never be able to run to completion (and thus not callingdoOnCompleted()
). This can also happen if the sources are exactly the same length; if source A completes and B has been consumed and is about to complete, the operator detects A won't be sending further values and it will unsubscribe B immediately. For example:
zip(new Observable[]{range(1, 5).doOnCompleted(action1), range(6, 5).doOnCompleted(action2)}, (a) -> a)
action1
will be called butaction2
won't.doOnUnsubscribed()
as well or useusing()
to do cleanup in case of completion or unsubscription.interval(long, TimeUnit)
may result in MissingBackpressureException, use one of theonBackpressureX
to handle similar, backpressure-ignoring sources.zip
does not operate by default on a particularScheduler
.R
- the result typews
- an array of source ObservableszipFunction
- a function that, when applied to an item emitted by each of the source Observables, results in an item that will be emitted by the resulting Observablepublic static <R> Observable<R> zip(Observable<? extendsObservable<?>> ws,FuncN<? extends R> zipFunction)
zip
applies this function in strict sequence, so the first item emitted by the new Observable will be the result of the function applied to the first item emitted by each of the Observables emitted by the source Observable; the second item emitted by the new Observable will be the result of the function applied to the second item emitted by each of those Observables; and so forth.
The resultingObservable<R>
returned fromzip
will invokeonNext
as many times as the number ofonNext
invocations of the source Observable that emits the fewest items.
The operator subscribes to its sources in order they are specified and completes eagerly if one of the sources is shorter than the rest while unsubscribing the other sources. Therefore, it is possible those other sources will never be able to run to completion (and thus not callingdoOnCompleted()
). This can also happen if the sources are exactly the same length; if source A completes and B has been consumed and is about to complete, the operator detects A won't be sending further values and it will unsubscribe B immediately. For example:
zip(just(range(1, 5).doOnCompleted(action1), range(6, 5).doOnCompleted(action2)), (a) -> a)
action1
will be called butaction2
won't.doOnUnsubscribed()
as well or useusing()
to do cleanup in case of completion or unsubscription.interval(long, TimeUnit)
may result in MissingBackpressureException, use one of theonBackpressureX
to handle similar, backpressure-ignoring sources.zip
does not operate by default on a particularScheduler
.R
- the zipped result typews
- an Observable of source ObservableszipFunction
- a function that, when applied to an item emitted by each of the Observables emitted byws
, results in an item that will be emitted by the resulting Observablepublic static <T1,T2,R> Observable<R> zip(Observable<? extends T1> o1,Observable<? extends T2> o2,Func2<? super T1,? super T2,? extends R> zipFunction)
zip
applies this function in strict sequence, so the first item emitted by the new Observable will be the result of the function applied to the first item emitted byo1
and the first item emitted byo2
; the second item emitted by the new Observable will be the result of the function applied to the second item emitted byo1
and the second item emitted byo2
; and so forth.
The resultingObservable<R>
returned fromzip
will invokeonNext
as many times as the number ofonNext
invocations of the source Observable that emits the fewest items.
The operator subscribes to its sources in order they are specified and completes eagerly if one of the sources is shorter than the rest while unsubscribing the other sources. Therefore, it is possible those other sources will never be able to run to completion (and thus not callingdoOnCompleted()
). This can also happen if the sources are exactly the same length; if source A completes and B has been consumed and is about to complete, the operator detects A won't be sending further values and it will unsubscribe B immediately. For example:
zip(range(1, 5).doOnCompleted(action1), range(6, 5).doOnCompleted(action2), (a, b) -> a + b)
action1
will be called butaction2
won't.doOnUnsubscribed()
as well or useusing()
to do cleanup in case of completion or unsubscription.interval(long, TimeUnit)
may result in MissingBackpressureException, use one of theonBackpressureX
to handle similar, backpressure-ignoring sources.zip
does not operate by default on a particularScheduler
.T1
- the value type of the first sourceT2
- the value type of the second sourceR
- the zipped result typeo1
- the first source Observableo2
- a second source ObservablezipFunction
- a function that, when applied to an item emitted by each of the source Observables, results in an item that will be emitted by the resulting Observablepublic static <T1,T2,T3,R> Observable<R> zip(Observable<? extends T1> o1,Observable<? extends T2> o2,Observable<? extends T3> o3,Func3<? super T1,? super T2,? super T3,? extends R> zipFunction)
zip
applies this function in strict sequence, so the first item emitted by the new Observable will be the result of the function applied to the first item emitted byo1
, the first item emitted byo2
, and the first item emitted byo3
; the second item emitted by the new Observable will be the result of the function applied to the second item emitted byo1
, the second item emitted byo2
, and the second item emitted byo3
; and so forth.
The resultingObservable<R>
returned fromzip
will invokeonNext
as many times as the number ofonNext
invocations of the source Observable that emits the fewest items.
The operator subscribes to its sources in order they are specified and completes eagerly if one of the sources is shorter than the rest while unsubscribing the other sources. Therefore, it is possible those other sources will never be able to run to completion (and thus not callingdoOnCompleted()
). This can also happen if the sources are exactly the same length; if source A completes and B has been consumed and is about to complete, the operator detects A won't be sending further values and it will unsubscribe B immediately. For example:
zip(range(1, 5).doOnCompleted(action1), range(6, 5).doOnCompleted(action2), ..., (a, b, c) -> a + b)
action1
will be called butaction2
won't.doOnUnsubscribed()
as well or useusing()
to do cleanup in case of completion or unsubscription.interval(long, TimeUnit)
may result in MissingBackpressureException, use one of theonBackpressureX
to handle similar, backpressure-ignoring sources.zip
does not operate by default on a particularScheduler
.T1
- the value type of the first sourceT2
- the value type of the second sourceT3
- the value type of the third sourceR
- the zipped result typeo1
- the first source Observableo2
- a second source Observableo3
- a third source ObservablezipFunction
- a function that, when applied to an item emitted by each of the source Observables, results in an item that will be emitted by the resulting Observablepublic static <T1,T2,T3,T4,R> Observable<R> zip(Observable<? extends T1> o1,Observable<? extends T2> o2,Observable<? extends T3> o3,Observable<? extends T4> o4,Func4<? super T1,? super T2,? super T3,? super T4,? extends R> zipFunction)
zip
applies this function in strict sequence, so the first item emitted by the new Observable will be the result of the function applied to the first item emitted byo1
, the first item emitted byo2
, the first item emitted byo3
, and the first item emitted by04
; the second item emitted by the new Observable will be the result of the function applied to the second item emitted by each of those Observables; and so forth.
The resultingObservable<R>
returned fromzip
will invokeonNext
as many times as the number ofonNext
invocations of the source Observable that emits the fewest items.
The operator subscribes to its sources in order they are specified and completes eagerly if one of the sources is shorter than the rest while unsubscribing the other sources. Therefore, it is possible those other sources will never be able to run to completion (and thus not callingdoOnCompleted()
). This can also happen if the sources are exactly the same length; if source A completes and B has been consumed and is about to complete, the operator detects A won't be sending further values and it will unsubscribe B immediately. For example:
zip(range(1, 5).doOnCompleted(action1), range(6, 5).doOnCompleted(action2), ..., (a, b, c, d) -> a + b)
action1
will be called butaction2
won't.doOnUnsubscribed()
as well or useusing()
to do cleanup in case of completion or unsubscription.interval(long, TimeUnit)
may result in MissingBackpressureException, use one of theonBackpressureX
to handle similar, backpressure-ignoring sources.zip
does not operate by default on a particularScheduler
.T1
- the value type of the first sourceT2
- the value type of the second sourceT3
- the value type of the third sourceT4
- the value type of the fourth sourceR
- the zipped result typeo1
- the first source Observableo2
- a second source Observableo3
- a third source Observableo4
- a fourth source ObservablezipFunction
- a function that, when applied to an item emitted by each of the source Observables, results in an item that will be emitted by the resulting Observablepublic static <T1,T2,T3,T4,T5,R> Observable<R> zip(Observable<? extends T1> o1,Observable<? extends T2> o2,Observable<? extends T3> o3,Observable<? extends T4> o4,Observable<? extends T5> o5,Func5<? super T1,? super T2,? super T3,? super T4,? super T5,? extends R> zipFunction)
zip
applies this function in strict sequence, so the first item emitted by the new Observable will be the result of the function applied to the first item emitted byo1
, the first item emitted byo2
, the first item emitted byo3
, the first item emitted byo4
, and the first item emitted byo5
; the second item emitted by the new Observable will be the result of the function applied to the second item emitted by each of those Observables; and so forth.
The resultingObservable<R>
returned fromzip
will invokeonNext
as many times as the number ofonNext
invocations of the source Observable that emits the fewest items.
The operator subscribes to its sources in order they are specified and completes eagerly if one of the sources is shorter than the rest while unsubscribing the other sources. Therefore, it is possible those other sources will never be able to run to completion (and thus not callingdoOnCompleted()
). This can also happen if the sources are exactly the same length; if source A completes and B has been consumed and is about to complete, the operator detects A won't be sending further values and it will unsubscribe B immediately. For example:
zip(range(1, 5).doOnCompleted(action1), range(6, 5).doOnCompleted(action2), ..., (a, b, c, d, e) -> a + b)
action1
will be called butaction2
won't.doOnUnsubscribed()
as well or useusing()
to do cleanup in case of completion or unsubscription.interval(long, TimeUnit)
may result in MissingBackpressureException, use one of theonBackpressureX
to handle similar, backpressure-ignoring sources.zip
does not operate by default on a particularScheduler
.T1
- the value type of the first sourceT2
- the value type of the second sourceT3
- the value type of the third sourceT4
- the value type of the fourth sourceT5
- the value type of the fifth sourceR
- the zipped result typeo1
- the first source Observableo2
- a second source Observableo3
- a third source Observableo4
- a fourth source Observableo5
- a fifth source ObservablezipFunction
- a function that, when applied to an item emitted by each of the source Observables, results in an item that will be emitted by the resulting Observablepublic static <T1,T2,T3,T4,T5,T6,R> Observable<R> zip(Observable<? extends T1> o1,Observable<? extends T2> o2,Observable<? extends T3> o3,Observable<? extends T4> o4,Observable<? extends T5> o5,Observable<? extends T6> o6,Func6<? super T1,? super T2,? super T3,? super T4,? super T5,? super T6,? extends R> zipFunction)
zip
applies this function in strict sequence, so the first item emitted by the new Observable will be the result of the function applied to the first item emitted by each source Observable, the second item emitted by the new Observable will be the result of the function applied to the second item emitted by each of those Observables, and so forth.
The resultingObservable<R>
returned fromzip
will invokeonNext
as many times as the number ofonNext
invocations of the source Observable that emits the fewest items.
The operator subscribes to its sources in order they are specified and completes eagerly if one of the sources is shorter than the rest while unsubscribing the other sources. Therefore, it is possible those other sources will never be able to run to completion (and thus not callingdoOnCompleted()
). This can also happen if the sources are exactly the same length; if source A completes and B has been consumed and is about to complete, the operator detects A won't be sending further values and it will unsubscribe B immediately. For example:
zip(range(1, 5).doOnCompleted(action1), range(6, 5).doOnCompleted(action2), ..., (a, b, c, d, e, f) -> a + b)
action1
will be called butaction2
won't.doOnUnsubscribed()
as well or useusing()
to do cleanup in case of completion or unsubscription.interval(long, TimeUnit)
may result in MissingBackpressureException, use one of theonBackpressureX
to handle similar, backpressure-ignoring sources.zip
does not operate by default on a particularScheduler
.T1
- the value type of the first sourceT2
- the value type of the second sourceT3
- the value type of the third sourceT4
- the value type of the fourth sourceT5
- the value type of the fifth sourceT6
- the value type of the sixth sourceR
- the zipped result typeo1
- the first source Observableo2
- a second source Observableo3
- a third source Observableo4
- a fourth source Observableo5
- a fifth source Observableo6
- a sixth source ObservablezipFunction
- a function that, when applied to an item emitted by each of the source Observables, results in an item that will be emitted by the resulting Observablepublic static <T1,T2,T3,T4,T5,T6,T7,R> Observable<R> zip(Observable<? extends T1> o1,Observable<? extends T2> o2,Observable<? extends T3> o3,Observable<? extends T4> o4,Observable<? extends T5> o5,Observable<? extends T6> o6,Observable<? extends T7> o7,Func7<? super T1,? super T2,? super T3,? super T4,? super T5,? super T6,? super T7,? extends R> zipFunction)
zip
applies this function in strict sequence, so the first item emitted by the new Observable will be the result of the function applied to the first item emitted by each source Observable, the second item emitted by the new Observable will be the result of the function applied to the second item emitted by each of those Observables, and so forth.
The resultingObservable<R>
returned fromzip
will invokeonNext
as many times as the number ofonNext
invocations of the source Observable that emits the fewest items.
The operator subscribes to its sources in order they are specified and completes eagerly if one of the sources is shorter than the rest while unsubscribing the other sources. Therefore, it is possible those other sources will never be able to run to completion (and thus not callingdoOnCompleted()
). This can also happen if the sources are exactly the same length; if source A completes and B has been consumed and is about to complete, the operator detects A won't be sending further values and it will unsubscribe B immediately. For example:
zip(range(1, 5).doOnCompleted(action1), range(6, 5).doOnCompleted(action2), ..., (a, b, c, d, e, f, g) -> a + b)
action1
will be called butaction2
won't.doOnUnsubscribed()
as well or useusing()
to do cleanup in case of completion or unsubscription.interval(long, TimeUnit)
may result in MissingBackpressureException, use one of theonBackpressureX
to handle similar, backpressure-ignoring sources.zip
does not operate by default on a particularScheduler
.T1
- the value type of the first sourceT2
- the value type of the second sourceT3
- the value type of the third sourceT4
- the value type of the fourth sourceT5
- the value type of the fifth sourceT6
- the value type of the sixth sourceT7
- the value type of the seventh sourceR
- the zipped result typeo1
- the first source Observableo2
- a second source Observableo3
- a third source Observableo4
- a fourth source Observableo5
- a fifth source Observableo6
- a sixth source Observableo7
- a seventh source ObservablezipFunction
- a function that, when applied to an item emitted by each of the source Observables, results in an item that will be emitted by the resulting Observablepublic static <T1,T2,T3,T4,T5,T6,T7,T8,R> Observable<R> zip(Observable<? extends T1> o1,Observable<? extends T2> o2,Observable<? extends T3> o3,Observable<? extends T4> o4,Observable<? extends T5> o5,Observable<? extends T6> o6,Observable<? extends T7> o7,Observable<? extends T8> o8,Func8<? super T1,? super T2,? super T3,? super T4,? super T5,? super T6,? super T7,? super T8,? extends R> zipFunction)
zip
applies this function in strict sequence, so the first item emitted by the new Observable will be the result of the function applied to the first item emitted by each source Observable, the second item emitted by the new Observable will be the result of the function applied to the second item emitted by each of those Observables, and so forth.
The resultingObservable<R>
returned fromzip
will invokeonNext
as many times as the number ofonNext
invocations of the source Observable that emits the fewest items.
The operator subscribes to its sources in order they are specified and completes eagerly if one of the sources is shorter than the rest while unsubscribing the other sources. Therefore, it is possible those other sources will never be able to run to completion (and thus not callingdoOnCompleted()
). This can also happen if the sources are exactly the same length; if source A completes and B has been consumed and is about to complete, the operator detects A won't be sending further values and it will unsubscribe B immediately. For example:
zip(range(1, 5).doOnCompleted(action1), range(6, 5).doOnCompleted(action2), ..., (a, b, c, d, e, f, g, h) -> a + b)
action1
will be called butaction2
won't.doOnUnsubscribed()
as well or useusing()
to do cleanup in case of completion or unsubscription.interval(long, TimeUnit)
may result in MissingBackpressureException, use one of theonBackpressureX
to handle similar, backpressure-ignoring sources.zip
does not operate by default on a particularScheduler
.T1
- the value type of the first sourceT2
- the value type of the second sourceT3
- the value type of the third sourceT4
- the value type of the fourth sourceT5
- the value type of the fifth sourceT6
- the value type of the sixth sourceT7
- the value type of the seventh sourceT8
- the value type of the eighth sourceR
- the zipped result typeo1
- the first source Observableo2
- a second source Observableo3
- a third source Observableo4
- a fourth source Observableo5
- a fifth source Observableo6
- a sixth source Observableo7
- a seventh source Observableo8
- an eighth source ObservablezipFunction
- a function that, when applied to an item emitted by each of the source Observables, results in an item that will be emitted by the resulting Observablepublic static <T1,T2,T3,T4,T5,T6,T7,T8,T9,R> Observable<R> zip(Observable<? extends T1> o1,Observable<? extends T2> o2,Observable<? extends T3> o3,Observable<? extends T4> o4,Observable<? extends T5> o5,Observable<? extends T6> o6,Observable<? extends T7> o7,Observable<? extends T8> o8,Observable<? extends T9> o9,Func9<? super T1,? super T2,? super T3,? super T4,? super T5,? super T6,? super T7,? super T8,? super T9,? extends R> zipFunction)
zip
applies this function in strict sequence, so the first item emitted by the new Observable will be the result of the function applied to the first item emitted by each source Observable, the second item emitted by the new Observable will be the result of the function applied to the second item emitted by each of those Observables, and so forth.
The resultingObservable<R>
returned fromzip
will invokeonNext
as many times as the number ofonNext
invocations of the source Observable that emits the fewest items.
The operator subscribes to its sources in order they are specified and completes eagerly if one of the sources is shorter than the rest while unsubscribing the other sources. Therefore, it is possible those other sources will never be able to run to completion (and thus not callingdoOnCompleted()
). This can also happen if the sources are exactly the same length; if source A completes and B has been consumed and is about to complete, the operator detects A won't be sending further values and it will unsubscribe B immediately. For example:
zip(range(1, 5).doOnCompleted(action1), range(6, 5).doOnCompleted(action2), ..., (a, b, c, d, e, f, g, h, i) -> a + b)
action1
will be called butaction2
won't.doOnUnsubscribed()
as well or useusing()
to do cleanup in case of completion or unsubscription.interval(long, TimeUnit)
may result in MissingBackpressureException, use one of theonBackpressureX
to handle similar, backpressure-ignoring sources.zip
does not operate by default on a particularScheduler
.T1
- the value type of the first sourceT2
- the value type of the second sourceT3
- the value type of the third sourceT4
- the value type of the fourth sourceT5
- the value type of the fifth sourceT6
- the value type of the sixth sourceT7
- the value type of the seventh sourceT8
- the value type of the eighth sourceT9
- the value type of the ninth sourceR
- the zipped result typeo1
- the first source Observableo2
- a second source Observableo3
- a third source Observableo4
- a fourth source Observableo5
- a fifth source Observableo6
- a sixth source Observableo7
- a seventh source Observableo8
- an eighth source Observableo9
- a ninth source ObservablezipFunction
- a function that, when applied to an item emitted by each of the source Observables, results in an item that will be emitted by the resulting Observablepublic final Observable<java.lang.Boolean> all(Func1<? superT,java.lang.Boolean> predicate)
Observable
in an unbounded manner (i.e., without applying backpressure).all
does not operate by default on a particularScheduler
.predicate
- a function that evaluates an item and returns a Booleantrue
if all items emitted by the source Observable satisfy the predicate; otherwise,false
public final Observable<T> ambWith(Observable<? extendsT> t1)
Observable
's backpressure behavior.amb
does not operate by default on a particularScheduler
.t1
- an Observable competing to react firstpublic final Observable<T> asObservable()
Observable
's backpressure behavior.asObservable
does not operate by default on a particularScheduler
.public final <TClosing> Observable<java.util.List<T>> buffer(Func0<? extendsObservable<? extends TClosing>> bufferClosingSelector)
bufferClosingSelector
emits an item.Long.MAX_VALUE
upstream and does not obey downstream requests.buffer
does not operate by default on a particularScheduler
.TClosing
- the value type of the boundary-providing ObservablebufferClosingSelector
- aFunc0
that produces an Observable that governs the boundary between buffers. Whenever the sourceObservable
emits an item,buffer
emits the current buffer and begins to fill a new onebufferClosingSelector
argument emits an itempublic final Observable<java.util.List<T>> buffer(int count)
count
items. When the source Observable completes or encounters an error, the resulting Observable emits the current buffer and propagates the notification from the source Observable.Observable
to honor it as well, although not enforced; violationmay lead toMissingBackpressureException
somewhere downstream.buffer
does not operate by default on a particularScheduler
.count
- the maximum number of items in each buffer before it should be emittedcount
items from the source Observablepublic final Observable<java.util.List<T>> buffer(int count, int skip)
skip
items, each containingcount
items. When the source Observable completes or encounters an error, the resulting Observable emits the current buffer and propagates the notification from the source Observable.Observable
to honor it as well, although not enforced; violationmay lead toMissingBackpressureException
somewhere downstream.buffer
does not operate by default on a particularScheduler
.count
- the maximum size of each buffer before it should be emittedskip
- how many items emitted by the source Observable should be skipped before starting a new buffer. Note that whenskip
andcount
are equal, this is the same operation asbuffer(int)
.skip
item from the source Observable and containing at mostcount
itemspublic final Observable<java.util.List<T>> buffer(long timespan, long timeshift, java.util.concurrent.TimeUnit unit)
timeshift
argument. It emits each buffer after a fixed timespan, specified by thetimespan
argument. When the source Observable completes or encounters an error, the resulting Observable emits the current buffer and propagates the notification from the source Observable.Long.MAX_VALUE
upstream and does not obey downstream requests.buffer
operates by default on thecomputation
Scheduler
.timespan
- the period of time each buffer collects items before it is emittedtimeshift
- the period of time after which a new buffer will be createdunit
- the unit of time that applies to thetimespan
andtimeshift
argumentspublic final Observable<java.util.List<T>> buffer(long timespan, long timeshift, java.util.concurrent.TimeUnit unit,Scheduler scheduler)
timeshift
argument, and on the specifiedscheduler
. It emits each buffer after a fixed timespan, specified by thetimespan
argument. When the source Observable completes or encounters an error, the resulting Observable emits the current buffer and propagates the notification from the source Observable.Long.MAX_VALUE
upstream and does not obey downstream requests.Scheduler
this operator will usetimespan
- the period of time each buffer collects items before it is emittedtimeshift
- the period of time after which a new buffer will be createdunit
- the unit of time that applies to thetimespan
andtimeshift
argumentsscheduler
- theScheduler
to use when determining the end and start of a bufferpublic final Observable<java.util.List<T>> buffer(long timespan, java.util.concurrent.TimeUnit unit)
timespan
argument. When the source Observable completes or encounters an error, the resulting Observable emits the current buffer and propagates the notification from the source Observable.Long.MAX_VALUE
upstream and does not obey downstream requests.buffer
operates by default on thecomputation
Scheduler
.timespan
- the period of time each buffer collects items before it is emitted and replaced with a new bufferunit
- the unit of time that applies to thetimespan
argumentpublic final Observable<java.util.List<T>> buffer(long timespan, java.util.concurrent.TimeUnit unit, int count)
timespan
argument or a maximum size specified by thecount
argument (whichever is reached first). When the source Observable completes or encounters an error, the resulting Observable emits the current buffer and propagates the notification from the source Observable.Long.MAX_VALUE
upstream and does not obey downstream requests.buffer
operates by default on thecomputation
Scheduler
.timespan
- the period of time each buffer collects items before it is emitted and replaced with a new bufferunit
- the unit of time which applies to thetimespan
argumentcount
- the maximum size of each buffer before it is emittedpublic final Observable<java.util.List<T>> buffer(long timespan, java.util.concurrent.TimeUnit unit, int count,Scheduler scheduler)
timespan
argument as measured on the specifiedscheduler
, or a maximum size specified by thecount
argument (whichever is reached first). When the source Observable completes or encounters an error, the resulting Observable emits the current buffer and propagates the notification from the source Observable.Long.MAX_VALUE
upstream and does not obey downstream requests.Scheduler
this operator will usetimespan
- the period of time each buffer collects items before it is emitted and replaced with a new bufferunit
- the unit of time which applies to thetimespan
argumentcount
- the maximum size of each buffer before it is emittedscheduler
- theScheduler
to use when determining the end and start of a bufferpublic final Observable<java.util.List<T>> buffer(long timespan, java.util.concurrent.TimeUnit unit,Scheduler scheduler)
timespan
argument and on the specifiedscheduler
. When the source Observable completes or encounters an error, the resulting Observable emits the current buffer and propagates the notification from the source Observable.Long.MAX_VALUE
upstream and does not obey downstream requests.Scheduler
this operator will usetimespan
- the period of time each buffer collects items before it is emitted and replaced with a new bufferunit
- the unit of time which applies to thetimespan
argumentscheduler
- theScheduler
to use when determining the end and start of a bufferpublic final <TOpening,TClosing> Observable<java.util.List<T>> buffer(Observable<? extends TOpening> bufferOpenings,Func1<? super TOpening,? extendsObservable<? extends TClosing>> bufferClosingSelector)
bufferOpenings
Observable emits an item, and closes when the Observable returned frombufferClosingSelector
emits an item.Long.MAX_VALUE
upstream and does not obey downstream requests.buffer
does not operate by default on a particularScheduler
.TOpening
- the element type of the buffer-opening ObservableTClosing
- the element type of the individual buffer-closing ObservablesbufferOpenings
- the Observable that, when it emits an item, causes a new buffer to be createdbufferClosingSelector
- theFunc1
that is used to produce an Observable for every buffer created. When this Observable emits an item, the associated buffer is emitted.public final <B> Observable<java.util.List<T>> buffer(Observable<B> boundary)
Completion of either the source or the boundary Observable causes the returned Observable to emit the latest buffer and complete.
Observable
boundary
and buffers data. It requestsLong.MAX_VALUE
upstream and does not obey downstream requests.buffer
does not operate by default on a particularScheduler
.B
- the boundary value type (ignored)boundary
- the boundary Observablebuffer(rx.Observable, int)
,ReactiveX operators documentation: Bufferpublic final <B> Observable<java.util.List<T>> buffer(Observable<B> boundary, int initialCapacity)
Completion of either the source or the boundary Observable causes the returned Observable to emit the latest buffer and complete.
Observable
boundary
and buffers data. It requestsLong.MAX_VALUE
upstream and does not obey downstream requests.buffer
does not operate by default on a particularScheduler
.B
- the boundary value type (ignored)boundary
- the boundary ObservableinitialCapacity
- the initial capacity of each buffer chunkbuffer(rx.Observable, int)
public final Observable<T> cache()
This is useful when you want an Observable to cache responses and you can't control the subscribe/unsubscribe behavior of all theSubscriber
s.
The operator subscribes only when the first downstream subscriber subscribes and maintains a single subscription towards this Observable. In contrast, the operator family ofreplay()
that return aConnectableObservable
require an explicit call toConnectableObservable.connect()
.
Note: You sacrifice the ability to unsubscribe from the origin when you use thecache
Observer so be careful not to use this Observer on Observables that emit an infinite or very large number of items that will use up memory. A possible workaround is to apply `takeUntil` with a predicate or another source before (and perhaps after) the application of cache().
AtomicBoolean shouldStop = new AtomicBoolean(); source.takeUntil(v -> shouldStop.get()) .cache() .takeUntil(v -> shouldStop.get()) .subscribe(...);
Since the operator doesn't allow clearing the cached values either, the possible workaround is to forget all references to it viaonTerminateDetach()
applied along with the previous workaround: AtomicBoolean shouldStop = new AtomicBoolean(); source.takeUntil(v -> shouldStop.get()) .onTerminateDetach() .cache() .takeUntil(v -> shouldStop.get()) .onTerminateDetach() .subscribe(...);
cache
does not operate by default on a particularScheduler
.@Deprecatedpublic final Observable<T> cache(int initialCapacity)
cacheWithInitialCapacity(int)
instead.initialCapacity
- the capacity to start withcacheWithInitialCapacity(int)
public final Observable<T> cacheWithInitialCapacity(int initialCapacity)
This is useful when you want an Observable to cache responses and you can't control the subscribe/unsubscribe behavior of all theSubscriber
s.
The operator subscribes only when the first downstream subscriber subscribes and maintains a single subscription towards this Observable. In contrast, the operator family ofreplay()
that return aConnectableObservable
require an explicit call toConnectableObservable.connect()
.
Note: You sacrifice the ability to unsubscribe from the origin when you use thecache
Observer so be careful not to use this Observer on Observables that emit an infinite or very large number of items that will use up memory. A possible workaround is to apply `takeUntil` with a predicate or another source before (and perhaps after) the application of cache().
AtomicBoolean shouldStop = new AtomicBoolean(); source.takeUntil(v -> shouldStop.get()) .cache() .takeUntil(v -> shouldStop.get()) .subscribe(...);
Since the operator doesn't allow clearing the cached values either, the possible workaround is to forget all references to it viaonTerminateDetach()
applied along with the previous workaround: AtomicBoolean shouldStop = new AtomicBoolean(); source.takeUntil(v -> shouldStop.get()) .onTerminateDetach() .cache() .takeUntil(v -> shouldStop.get()) .onTerminateDetach() .subscribe(...);
cache
does not operate by default on a particularScheduler
.Note: The capacity hint is not an upper bound on cache size. For that, considerreplay(int)
in combination withConnectableObservable.autoConnect()
or similar.
initialCapacity
- hint for number of items to cache (for optimizing underlying data structure)public final <R> Observable<R> cast(java.lang.Class<R> klass)
Observable
's backpressure behavior.cast
does not operate by default on a particularScheduler
.R
- the output value type cast toklass
- the target class type thatcast
will cast the items emitted by the source Observable into before emitting them from the resulting Observablepublic final <R> Observable<R> collect(Func0<R> stateFactory,Action2<R,? superT> collector)
This is a simplified version ofreduce
that does not need to return the state on each pass.
onNext
.collect
does not operate by default on a particularScheduler
.R
- the accumulator and output typestateFactory
- the mutable data structure that will collect the itemscollector
- a function that accepts thestate
and an emitted item, and modifiesstate
accordinglypublic final <R> Observable<R> concatMap(Func1<? superT,? extendsObservable<? extends R>> func)
Observable
s are expected to honor backpressure as well. If the sourceObservable
violates the rule, the operator will signal aMissingBackpressureException
. If any of the innerObservable
s doesn't honor backpressure, thatmay throw anIllegalStateException
when thatObservable
completes.concatMap
does not operate by default on a particularScheduler
.R
- the type of the inner Observable sources and thus the output typefunc
- a function that, when applied to an item emitted by the source Observable, returns an Observablepublic final <R> Observable<R> concatMapDelayError(Func1<? superT,? extendsObservable<? extends R>> func)
Observable
s are expected to honor backpressure as well. If the sourceObservable
violates the rule, the operator will signal aMissingBackpressureException
. If any of the innerObservable
s doesn't honor backpressure, thatmay throw anIllegalStateException
when thatObservable
completes.concatMapDelayError
does not operate by default on a particularScheduler
.R
- the result value typefunc
- the function that maps the items of this Observable into the inner Observables.public final <R> Observable<R> concatMapIterable(Func1<? superT,? extends java.lang.Iterable<? extends R>> collectionSelector)
Observable
s is expected to honor backpressure as well. If the sourceObservable
violates the rule, the operator will signal aMissingBackpressureException
.concatMapIterable
does not operate by default on a particularScheduler
.R
- the type of item emitted by the resulting ObservablecollectionSelector
- a function that returns an Iterable sequence of values for when given an item emitted by the source ObservablecollectionSelector
public final Observable<T> concatWith(Observable<? extendsT> t1)
other
Observable
s are expected to honor backpressure as well. If any of then violates this rule, itmay throw anIllegalStateException
when the sourceObservable
completes.concat
does not operate by default on a particularScheduler
.t1
- an Observable to be concatenated after the currentpublic final Observable<java.lang.Boolean> contains(java.lang.Object element)
Observable
in an unbounded manner (i.e., without applying backpressure).contains
does not operate by default on a particularScheduler
.element
- the item to search for in the emissions from the source Observabletrue
if the specified item is emitted by the source Observable, orfalse
if the source Observable completes without emitting that itempublic final Observable<java.lang.Integer> count()
Observable
in an unbounded manner (i.e., without applying backpressure).count
does not operate by default on a particularScheduler
.countLong()
public final Observable<java.lang.Long> countLong()
Observable
in an unbounded manner (i.e., without applying backpressure).countLong
does not operate by default on a particularScheduler
.count()
public final <U> Observable<T> debounce(Func1<? superT,? extendsObservable<U>> debounceSelector)
debounceSelector
to mark boundaries.debounce
does not operate by default on a particularScheduler
.U
- the debounce value type (ignored)debounceSelector
- function to retrieve a sequence that indicates the throttle duration for each itempublic final Observable<T> debounce(long timeout, java.util.concurrent.TimeUnit unit)
Note: If items keep being emitted by the source Observable faster than the timeout then no items will be emitted by the resulting Observable.
Information on debounce vs throttle:
debounce
operates by default on thecomputation
Scheduler
.timeout
- the time each item has to be "the most recent" of those emitted by the source Observable to ensure that it's not droppedunit
- theTimeUnit
for the timeoutthrottleWithTimeout(long, TimeUnit)
public final Observable<T> debounce(long timeout, java.util.concurrent.TimeUnit unit,Scheduler scheduler)
Note: If items keep being emitted by the source Observable faster than the timeout then no items will be emitted by the resulting Observable.
Information on debounce vs throttle:
Scheduler
this operator will usetimeout
- the time each item has to be "the most recent" of those emitted by the source Observable to ensure that it's not droppedunit
- the unit of time for the specified timeoutscheduler
- theScheduler
to use internally to manage the timers that handle the timeout for each itemthrottleWithTimeout(long, TimeUnit, Scheduler)
public final Observable<T> defaultIfEmpty(T defaultValue)
Observable
is empty, this operator is guaranteed to honor backpressure from downstream. If the sourceObservable
is non-empty, it is expected to honor backpressure as well; if the rule is violated, aMissingBackpressureException
may get signalled somewhere downstream.defaultIfEmpty
does not operate by default on a particularScheduler
.defaultValue
- the item to emit if the source Observable emits no itemspublic final Observable<T> switchIfEmpty(Observable<? extendsT> alternate)
Observable
is empty, the alternateObservable
is expected to honor backpressure. If the sourceObservable
is non-empty, it is expected to honor backpressure as instead. In either case, if violated, aMissingBackpressureException
may get signalled somewhere downstream.switchIfEmpty
does not operate by default on a particularScheduler
.alternate
- the alternate Observable to subscribe to if the source does not emit any itemsjava.lang.NullPointerException
- ifalternate
is nullpublic final <U,V> Observable<T> delay(Func0<? extendsObservable<U>> subscriptionDelay,Func1<? superT,? extendsObservable<V>> itemDelay)
Note: the resulting Observable will immediately propagate anyonError
notification from the source Observable.
Observable
. All of the otherObservable
s supplied by the functions are consumed in an unbounded manner (i.e., no backpressure applied to them).delay
does not operate by default on a particularScheduler
.U
- the subscription delay value type (ignored)V
- the item delay value type (ignored)subscriptionDelay
- a function that returns an Observable that triggers the subscription to the source Observable once it emits any itemitemDelay
- a function that returns an Observable for each item emitted by the source Observable, which is then used to delay the emission of that item by the resulting Observable until the Observable returned fromitemDelay
emits an itempublic final <U> Observable<T> delay(Func1<? superT,? extendsObservable<U>> itemDelay)
Note: the resulting Observable will immediately propagate anyonError
notification from the source Observable.
Observable
. All of the otherObservable
s supplied by the function are consumed in an unbounded manner (i.e., no backpressure applied to them).delay
does not operate by default on a particularScheduler
.U
- the item delay value type (ignored)itemDelay
- a function that returns an Observable for each item emitted by the source Observable, which is then used to delay the emission of that item by the resulting Observable until the Observable returned fromitemDelay
emits an itempublic final Observable<T> delay(long delay, java.util.concurrent.TimeUnit unit)
Observable
.delay
operates by default on thecomputation
Scheduler
.delay
- the delay to shift the source byunit
- theTimeUnit
in whichperiod
is definedpublic final Observable<T> delay(long delay, java.util.concurrent.TimeUnit unit,Scheduler scheduler)
Observable
.Scheduler
this operator will usedelay
- the delay to shift the source byunit
- the time unit ofdelay
scheduler
- theScheduler
to use for delayingpublic final Observable<T> delaySubscription(long delay, java.util.concurrent.TimeUnit unit)
Observable
.delay
operates by default on thecomputation
Scheduler
.delay
- the time to delay the subscriptionunit
- the time unit ofdelay
public final Observable<T> delaySubscription(long delay, java.util.concurrent.TimeUnit unit,Scheduler scheduler)
Observable
.Scheduler
this operator will usedelay
- the time to delay the subscriptionunit
- the time unit ofdelay
scheduler
- the Scheduler on which the waiting and subscription will happenpublic final <U> Observable<T> delaySubscription(Func0<? extendsObservable<U>> subscriptionDelay)
Observable
. The otherObservable
s supplied by the function is consumed in an unbounded manner (i.e., no backpressure applied to it).Scheduler
.U
- the element type of the delaying ObservablesubscriptionDelay
- a function that returns an Observable that triggers the subscription to the source Observable once it emits any itemsubscriptionDelay
emits an itempublic final <U> Observable<T> delaySubscription(Observable<U> other)
Scheduler
.U
- the value type of the other Observable, irrelevantother
- the other Observable that should trigger the subscription to this Observable.public final <T2> Observable<T2> dematerialize()
materialize
by transforming theNotification
objects emitted by the source Observable into the items or notifications they represent.Observable
's backpressure behavior.dematerialize
does not operate by default on a particularScheduler
.T2
- the output value typeNotification
objects emitted by the source ObservableOnErrorNotImplementedException
- if the source Observable is not of typeObservable<Notification<T>>
public final Observable<T> distinct()
Observable
's backpressure behavior.distinct
does not operate by default on a particularScheduler
.public final <U> Observable<T> distinct(Func1<? superT,? extends U> keySelector)
Observable
's backpressure behavior.distinct
does not operate by default on a particularScheduler
.U
- the key typekeySelector
- a function that projects an emitted item to a key value that is used to decide whether an item is distinct from another one or notpublic final Observable<T> distinctUntilChanged()
Observable
's backpressure behavior.distinctUntilChanged
does not operate by default on a particularScheduler
.public final <U> Observable<T> distinctUntilChanged(Func1<? superT,? extends U> keySelector)
Observable
's backpressure behavior.distinctUntilChanged
does not operate by default on a particularScheduler
.U
- the key typekeySelector
- a function that projects an emitted item to a key value that is used to decide whether an item is distinct from another one or notpublic final Observable<T> distinctUntilChanged(Func2<? superT,? superT,java.lang.Boolean> comparator)
Observable
's backpressure behavior.distinctUntilChanged
does not operate by default on a particularScheduler
.comparator
- the function that receives the previous item and the current item and is expected to return true if the two are equal, thus skipping the current value.public final Observable<T> doOnCompleted(Action0 onCompleted)
onCompleted
.Observable
's backpressure behavior.doOnCompleted
does not operate by default on a particularScheduler
.onCompleted
- the action to invoke when the source Observable callsonCompleted
public final Observable<T> doOnEach(Action1<Notification<? superT>> onNotification)
Observable
's backpressure behavior.doOnEach
does not operate by default on a particularScheduler
.onNotification
- the action to invoke for each item emitted by the source Observablepublic final Observable<T> doOnEach(Observer<? superT> observer)
In case theonError
of the supplied observer throws, the downstream will receive a composite exception containing the original exception and the exception thrown byonError
. If either theonNext
or theonCompleted
method of the supplied observer throws, the downstream will be terminated and will receive this thrown exception.
Observable
's backpressure behavior.doOnEach
does not operate by default on a particularScheduler
.observer
- the observer to be notified about onNext, onError and onCompleted events on its respective methods before the actual downstream Subscriber gets notified.public final Observable<T> doOnError(Action1<? super java.lang.Throwable> onError)
onError
. In case theonError
action throws, the downstream will receive a composite exception containing the original exception and the exception thrown byonError
.
Observable
's backpressure behavior.doOnError
does not operate by default on a particularScheduler
.onError
- the action to invoke if the source Observable callsonError
public final Observable<T> doOnNext(Action1<? superT> onNext)
onNext
.Observable
's backpressure behavior.doOnNext
does not operate by default on a particularScheduler
.onNext
- the action to invoke when the source Observable callsonNext
public final Observable<T> doOnRequest(Action1<? super java.lang.Long> onRequest)
Observable
so that it invokes the given action when it receives a request for more items.Note: This operator is for tracing the internal behavior of back-pressure request patterns and generally intended for debugging use.
Observable
's backpressure behavior.doOnRequest
does not operate by default on a particularScheduler
.onRequest
- the action that gets called when an observer requests items from thisObservable
Observable
modified so as to call this Action when appropriatepublic final Observable<T> doOnSubscribe(Action0 subscribe)
Observable
so that it invokes the given action when it is subscribed from its subscribers. Each subscription will result in an invocation of the given action except when the sourceObservable
is reference counted, in which case the sourceObservable
will invoke the given action for the first subscription.Observable
's backpressure behavior.doOnSubscribe
does not operate by default on a particularScheduler
.subscribe
- the action that gets called when an observer subscribes to the sourceObservable
Observable
modified so as to call this Action when appropriatepublic final Observable<T> doOnTerminate(Action0 onTerminate)
onCompleted
oronError
. This differs fromfinallyDo
in that this happensbefore theonCompleted
oronError
notification.
Observable
's backpressure behavior.doOnTerminate
does not operate by default on a particularScheduler
.onTerminate
- the action to invoke when the source Observable callsonCompleted
oronError
finallyDo(Action0)
public final Observable<T> doOnUnsubscribe(Action0 unsubscribe)
Action0
if the downstream unsubscribes the sequence.The action is shared between subscriptions and thus may be called concurrently from multiple threads; the action must be thread safe.
If the action throws a runtime exception, that exception is rethrown by theunsubscribe()
call, sometimes as aCompositeException
if there were multiple exceptions along the way.
Note that terminal events trigger the action unless theObservable
is subscribed to viaunsafeSubscribe()
.
doOnUnsubscribe
does not interact with backpressure requests or value delivery; backpressure behavior is preserved between its upstream and its downstream.doOnUnsubscribe
does not operate by default on a particularScheduler
.unsubscribe
- the action that gets called when the sourceObservable
is unsubscribedObservable
modified so as to call this Action when appropriatepublic static <T> Observable<T> concatEager(Observable<? extends T> o1,Observable<? extends T> o2)
Eager concatenation means that once a subscriber subscribes, this operator subscribes to all of the source Observables. The operator buffers the values emitted by these Observables and then drains them in order, each one after the previous one completes.
Scheduler
.T
- the value typeo1
- the first sourceo2
- the second sourcepublic static <T> Observable<T> concatEager(Observable<? extends T> o1,Observable<? extends T> o2,Observable<? extends T> o3)
Eager concatenation means that once a subscriber subscribes, this operator subscribes to all of the source Observables. The operator buffers the values emitted by these Observables and then drains them in order, each one after the previous one completes.
Scheduler
.T
- the value typeo1
- the first sourceo2
- the second sourceo3
- the third sourcepublic static <T> Observable<T> concatEager(Observable<? extends T> o1,Observable<? extends T> o2,Observable<? extends T> o3,Observable<? extends T> o4)
Eager concatenation means that once a subscriber subscribes, this operator subscribes to all of the source Observables. The operator buffers the values emitted by these Observables and then drains them in order, each one after the previous one completes.
Scheduler
.T
- the value typeo1
- the first sourceo2
- the second sourceo3
- the third sourceo4
- the fourth sourcepublic static <T> Observable<T> concatEager(Observable<? extends T> o1,Observable<? extends T> o2,Observable<? extends T> o3,Observable<? extends T> o4,Observable<? extends T> o5)
Eager concatenation means that once a subscriber subscribes, this operator subscribes to all of the source Observables. The operator buffers the values emitted by these Observables and then drains them in order, each one after the previous one completes.
Scheduler
.T
- the value typeo1
- the first sourceo2
- the second sourceo3
- the third sourceo4
- the fourth sourceo5
- the fifth sourcepublic static <T> Observable<T> concatEager(Observable<? extends T> o1,Observable<? extends T> o2,Observable<? extends T> o3,Observable<? extends T> o4,Observable<? extends T> o5,Observable<? extends T> o6)
Eager concatenation means that once a subscriber subscribes, this operator subscribes to all of the source Observables. The operator buffers the values emitted by these Observables and then drains them in order, each one after the previous one completes.
Scheduler
.T
- the value typeo1
- the first sourceo2
- the second sourceo3
- the third sourceo4
- the fourth sourceo5
- the fifth sourceo6
- the sixth sourcepublic static <T> Observable<T> concatEager(Observable<? extends T> o1,Observable<? extends T> o2,Observable<? extends T> o3,Observable<? extends T> o4,Observable<? extends T> o5,Observable<? extends T> o6,Observable<? extends T> o7)
Eager concatenation means that once a subscriber subscribes, this operator subscribes to all of the source Observables. The operator buffers the values emitted by these Observables and then drains them in order, each one after the previous one completes.
Scheduler
.T
- the value typeo1
- the first sourceo2
- the second sourceo3
- the third sourceo4
- the fourth sourceo5
- the fifth sourceo6
- the sixth sourceo7
- the seventh sourcepublic static <T> Observable<T> concatEager(Observable<? extends T> o1,Observable<? extends T> o2,Observable<? extends T> o3,Observable<? extends T> o4,Observable<? extends T> o5,Observable<? extends T> o6,Observable<? extends T> o7,Observable<? extends T> o8)
Eager concatenation means that once a subscriber subscribes, this operator subscribes to all of the source Observables. The operator buffers the values emitted by these Observables and then drains them in order, each one after the previous one completes.
Scheduler
.T
- the value typeo1
- the first sourceo2
- the second sourceo3
- the third sourceo4
- the fourth sourceo5
- the fifth sourceo6
- the sixth sourceo7
- the seventh sourceo8
- the eighth sourcepublic static <T> Observable<T> concatEager(Observable<? extends T> o1,Observable<? extends T> o2,Observable<? extends T> o3,Observable<? extends T> o4,Observable<? extends T> o5,Observable<? extends T> o6,Observable<? extends T> o7,Observable<? extends T> o8,Observable<? extends T> o9)
Eager concatenation means that once a subscriber subscribes, this operator subscribes to all of the source Observables. The operator buffers the values emitted by these Observables and then drains them in order, each one after the previous one completes.
Scheduler
.T
- the value typeo1
- the first sourceo2
- the second sourceo3
- the third sourceo4
- the fourth sourceo5
- the fifth sourceo6
- the sixth sourceo7
- the seventh sourceo8
- the eighth sourceo9
- the ninth sourcepublic static <T> Observable<T> concatEager(java.lang.Iterable<? extendsObservable<? extends T>> sources)
Eager concatenation means that once a subscriber subscribes, this operator subscribes to all of the source Observables. The operator buffers the values emitted by these Observables and then drains them in order, each one after the previous one completes.
Scheduler
.T
- the value typesources
- a sequence of Observables that need to be eagerly concatenatedpublic static <T> Observable<T> concatEager(java.lang.Iterable<? extendsObservable<? extends T>> sources, int capacityHint)
Eager concatenation means that once a subscriber subscribes, this operator subscribes to all of the source Observables. The operator buffers the values emitted by these Observables and then drains them in order, each one after the previous one completes.
Scheduler
.T
- the value typesources
- a sequence of Observables that need to be eagerly concatenatedcapacityHint
- hints about the number of expected source sequence valuespublic static <T> Observable<T> concatEager(Observable<? extendsObservable<? extends T>> sources)
Eager concatenation means that once a subscriber subscribes, this operator subscribes to all of the emitted source Observables as they are observed. The operator buffers the values emitted by these Observables and then drains them in order, each one after the previous one completes.
Scheduler
.T
- the value typesources
- a sequence of Observables that need to be eagerly concatenatedpublic static <T> Observable<T> concatEager(Observable<? extendsObservable<? extends T>> sources, int capacityHint)
Eager concatenation means that once a subscriber subscribes, this operator subscribes to all of the emitted source Observables as they are observed. The operator buffers the values emitted by these Observables and then drains them in order, each one after the previous one completes.
Scheduler
.T
- the value typesources
- a sequence of Observables that need to be eagerly concatenatedcapacityHint
- hints about the number of expected source sequence valuespublic final <R> Observable<R> concatMapEager(Func1<? superT,? extendsObservable<? extends R>> mapper)
Eager concatenation means that once a subscriber subscribes, this operator subscribes to all of the source Observables. The operator buffers the values emitted by these Observables and then drains them in order, each one after the previous one completes.
Scheduler
.R
- the value typemapper
- the function that maps a sequence of values into a sequence of Observables that will be eagerly concatenatedpublic final <R> Observable<R> concatMapEager(Func1<? superT,? extendsObservable<? extends R>> mapper, int capacityHint)
Eager concatenation means that once a subscriber subscribes, this operator subscribes to all of the source Observables. The operator buffers the values emitted by these Observables and then drains them in order, each one after the previous one completes.
Scheduler
.R
- the value typemapper
- the function that maps a sequence of values into a sequence of Observables that will be eagerly concatenatedcapacityHint
- hints about the number of expected source sequence valuespublic final <R> Observable<R> concatMapEager(Func1<? superT,? extendsObservable<? extends R>> mapper, int capacityHint, int maxConcurrent)
Eager concatenation means that once a subscriber subscribes, this operator subscribes to all of the source Observables. The operator buffers the values emitted by these Observables and then drains them in order, each one after the previous one completes.
Scheduler
.R
- the value typemapper
- the function that maps a sequence of values into a sequence of Observables that will be eagerly concatenatedcapacityHint
- hints about the number of expected source sequence valuesmaxConcurrent
- the maximum number of concurrent subscribed observablespublic final Observable<T> elementAt(int index)
Observable
in an unbounded manner (i.e., no backpressure applied to it).elementAt
does not operate by default on a particularScheduler
.index
- the zero-based index of the item to retrievejava.lang.IndexOutOfBoundsException
- ifindex
is greater than or equal to the number of items emitted by the source Observable, or ifindex
is less than 0public final Observable<T> elementAtOrDefault(int index,T defaultValue)
Observable
in an unbounded manner (i.e., no backpressure applied to it).elementAtOrDefault
does not operate by default on a particularScheduler
.index
- the zero-based index of the item to retrievedefaultValue
- the default itemjava.lang.IndexOutOfBoundsException
- ifindex
is less than 0public final Observable<java.lang.Boolean> exists(Func1<? superT,java.lang.Boolean> predicate)
true
if any item emitted by the source Observable satisfies a specified condition, otherwisefalse
.Note: this always emitsfalse
if the source Observable is empty. In Rx.Net this is theany
Observer but we renamed it in RxJava to better match Java naming idioms.
Observable
in an unbounded manner (i.e., no backpressure applied to it).exists
does not operate by default on a particularScheduler
.predicate
- the condition to test items emitted by the source Observablepredicate
public final Observable<T> filter(Func1<? superT,java.lang.Boolean> predicate)
Observable
's backpressure behavior.filter
does not operate by default on a particularScheduler
.predicate
- a function that evaluates each item emitted by the source Observable, returningtrue
if it passes the filtertrue
@Deprecatedpublic final Observable<T> finallyDo(Action0 action)
doAfterTerminate(Action0)
instead.Action0
to be called when this Observable invokes eitheronCompleted
oronError
.Observable
's backpressure behavior.finallyDo
does not operate by default on a particularScheduler
.action
- anAction0
to be invoked when the source Observable finishesAction0
doOnTerminate(Action0)
public final Observable<T> doAfterTerminate(Action0 action)
Action0
to be called when this Observable invokes eitheronCompleted
oronError
.Observable
's backpressure behavior.doAfterTerminate
does not operate by default on a particularScheduler
.action
- anAction0
to be invoked when the source Observable finishesAction0
doOnTerminate(Action0)
public final Observable<T> first()
NoSuchElementException
if the source Observable is empty.Observable
in an unbounded manner (i.e., without applying backpressure).first
does not operate by default on a particularScheduler
.NoSuchElementException
if the source Observable is emptypublic final Observable<T> first(Func1<? superT,java.lang.Boolean> predicate)
NoSuchElementException
if no such items are emitted.Observable
in an unbounded manner (i.e., without applying backpressure).first
does not operate by default on a particularScheduler
.predicate
- the condition that an item emitted by the source Observable has to satisfypredicate
, or raises anNoSuchElementException
if no such items are emittedpublic final Observable<T> firstOrDefault(T defaultValue)
Observable
in an unbounded manner (i.e., without applying backpressure).firstOrDefault
does not operate by default on a particularScheduler
.defaultValue
- the default item to emit if the source Observable doesn't emit anythingpublic final Observable<T> firstOrDefault(T defaultValue,Func1<? superT,java.lang.Boolean> predicate)
Observable
in an unbounded manner (i.e., without applying backpressure).firstOrDefault
does not operate by default on a particularScheduler
.predicate
- the condition any item emitted by the source Observable has to satisfydefaultValue
- the default item to emit if the source Observable doesn't emit anything that satisfies thepredicate
predicate
, or a default item if the source Observable emits no such itemspublic final <R> Observable<R> flatMap(Func1<? superT,? extendsObservable<? extends R>> func)
Observable
is consumed in unbounded mode (i.e., no backpressure is applied to it). The innerObservable
s are expected to honor backpressure; if violated, the operatormay signalMissingBackpressureException
.flatMap
does not operate by default on a particularScheduler
.R
- the value type of the inner Observables and the output typefunc
- a function that, when applied to an item emitted by the source Observable, returns an Observablepublic final <R> Observable<R> flatMap(Func1<? superT,? extendsObservable<? extends R>> func, int maxConcurrent)
Observable
s are expected to honor backpressure; if violated, the operatormay signalMissingBackpressureException
.flatMap
does not operate by default on a particularScheduler
.R
- the value type of the inner Observables and the output typefunc
- a function that, when applied to an item emitted by the source Observable, returns an ObservablemaxConcurrent
- the maximum number of Observables that may be subscribed to concurrentlypublic final <R> Observable<R> flatMap(Func1<? superT,? extendsObservable<? extends R>> onNext,Func1<? super java.lang.Throwable,? extendsObservable<? extends R>> onError,Func0<? extendsObservable<? extends R>> onCompleted)
Observable
is consumed in unbounded mode (i.e., no backpressure is applied to it). The innerObservable
s are expected to honor backpressure; if violated, the operatormay signalMissingBackpressureException
.flatMap
does not operate by default on a particularScheduler
.R
- the result typeonNext
- a function that returns an Observable to merge for each item emitted by the source ObservableonError
- a function that returns an Observable to merge for an onError notification from the source ObservableonCompleted
- a function that returns an Observable to merge for an onCompleted notification from the source Observablepublic final <R> Observable<R> flatMap(Func1<? superT,? extendsObservable<? extends R>> onNext,Func1<? super java.lang.Throwable,? extendsObservable<? extends R>> onError,Func0<? extendsObservable<? extends R>> onCompleted, int maxConcurrent)
Observable
s are expected to honor backpressure; if violated, the operatormay signalMissingBackpressureException
.flatMap
does not operate by default on a particularScheduler
.R
- the result typeonNext
- a function that returns an Observable to merge for each item emitted by the source ObservableonError
- a function that returns an Observable to merge for an onError notification from the source ObservableonCompleted
- a function that returns an Observable to merge for an onCompleted notification from the source ObservablemaxConcurrent
- the maximum number of Observables that may be subscribed to concurrentlypublic final <U,R> Observable<R> flatMap(Func1<? superT,? extendsObservable<? extends U>> collectionSelector,Func2<? superT,? super U,? extends R> resultSelector)
Observable
is consumed in unbounded mode (i.e., no backpressure is applied to it). The innerObservable
s are expected to honor backpressure; if violated, the operatormay signalMissingBackpressureException
.flatMap
does not operate by default on a particularScheduler
.U
- the type of items emitted by the collection ObservableR
- the type of items emitted by the resulting ObservablecollectionSelector
- a function that returns an Observable for each item emitted by the source ObservableresultSelector
- a function that combines one item emitted by each of the source and collection Observables and returns an item to be emitted by the resulting Observablepublic final <U,R> Observable<R> flatMap(Func1<? superT,? extendsObservable<? extends U>> collectionSelector,Func2<? superT,? super U,? extends R> resultSelector, int maxConcurrent)
Observable
s are expected to honor backpressure; if violated, the operatormay signalMissingBackpressureException
.flatMap
does not operate by default on a particularScheduler
.U
- the type of items emitted by the collection ObservableR
- the type of items emitted by the resulting ObservablecollectionSelector
- a function that returns an Observable for each item emitted by the source ObservableresultSelector
- a function that combines one item emitted by each of the source and collection Observables and returns an item to be emitted by the resulting ObservablemaxConcurrent
- the maximum number of Observables that may be subscribed to concurrentlypublic final Observable<T> flatMapCompletable(Func1<? superT,? extendsCompletable> mapper)
flatMapCompletable
does not operate by default on a particularScheduler
.History: 1.2.7 - experimental
mapper
- the function that receives an upstream value and turns it into a Completable to be merged.flatMapCompletable(Func1, boolean, int)
public final Observable<T> flatMapCompletable(Func1<? superT,? extendsCompletable> mapper, boolean delayErrors)
flatMapCompletable
does not operate by default on a particularScheduler
.History: 1.2.7 - experimental
mapper
- the function that receives an upstream value and turns it into a Completable to be merged.delayErrors
- if true, errors from the upstream and from the inner Completables get delayed till the all of them terminate.flatMapCompletable(Func1, boolean, int)
public final Observable<T> flatMapCompletable(Func1<? superT,? extendsCompletable> mapper, boolean delayErrors, int maxConcurrency)
flatMapCompletable
does not operate by default on a particularScheduler
.History: 1.2.7 - experimental
mapper
- the function that receives an upstream value and turns it into a Completable to be merged.delayErrors
- if true, errors from the upstream and from the inner Completables get delayed till the all of them terminate.maxConcurrency
- the maximum number of inner Completables to run at a timepublic final <R> Observable<R> flatMapIterable(Func1<? superT,? extends java.lang.Iterable<? extends R>> collectionSelector)
Observable
s is expected to honor backpressure as well. If the sourceObservable
violates the rule, the operator will signal aMissingBackpressureException
.flatMapIterable
does not operate by default on a particularScheduler
.R
- the type of item emitted by the resulting ObservablecollectionSelector
- a function that returns an Iterable sequence of values for when given an item emitted by the source ObservablecollectionSelector
public final <R> Observable<R> flatMapIterable(Func1<? superT,? extends java.lang.Iterable<? extends R>> collectionSelector, int maxConcurrent)
Observable
s is expected to honor backpressure as well. If the sourceObservable
violates the rule, the operator will signal aMissingBackpressureException
.flatMapIterable
does not operate by default on a particularScheduler
.R
- the type of item emitted by the resulting ObservablecollectionSelector
- a function that returns an Iterable sequence of values for when given an item emitted by the source ObservablemaxConcurrent
- the maximum number of Observables that may be subscribed to concurrentlycollectionSelector
java.lang.IllegalArgumentException
- ifmaxConcurrent
is less than or equal to 0public final <U,R> Observable<R> flatMapIterable(Func1<? superT,? extends java.lang.Iterable<? extends U>> collectionSelector,Func2<? superT,? super U,? extends R> resultSelector)
Observable
s is consumed in an unbounded manner (i.e., no backpressure is applied to it).flatMapIterable
does not operate by default on a particularScheduler
.U
- the collection element typeR
- the type of item emitted by the resulting ObservablecollectionSelector
- a function that returns an Iterable sequence of values for each item emitted by the source ObservableresultSelector
- a function that returns an item based on the item emitted by the source Observable and the Iterable returned for that item by thecollectionSelector
resultSelector
for each item in the source Observablepublic final <U,R> Observable<R> flatMapIterable(Func1<? superT,? extends java.lang.Iterable<? extends U>> collectionSelector,Func2<? superT,? super U,? extends R> resultSelector, int maxConcurrent)
Observable
s is expected to honor backpressure as well. If the sourceObservable
violates the rule, the operator will signal aMissingBackpressureException
.flatMapIterable
does not operate by default on a particularScheduler
.U
- the collection element typeR
- the type of item emitted by the resulting ObservablecollectionSelector
- a function that returns an Iterable sequence of values for each item emitted by the source ObservableresultSelector
- a function that returns an item based on the item emitted by the source Observable and the Iterable returned for that item by thecollectionSelector
maxConcurrent
- the maximum number of Observables that may be subscribed to concurrentlyresultSelector
for each item in the source Observablejava.lang.IllegalArgumentException
- ifmaxConcurrent
is less than or equal to 0public final <R> Observable<R> flatMapSingle(Func1<? superT,? extendsSingle<? extends R>> mapper)
flatMapSingle
does not operate by default on a particularScheduler
.History: 1.2.7 - experimental
R
- the value type of the inner Singles and the resulting Observablemapper
- the function that receives an upstream value and turns it into a Single to be merged.flatMapSingle(Func1, boolean, int)
public final <R> Observable<R> flatMapSingle(Func1<? superT,? extendsSingle<? extends R>> mapper, boolean delayErrors)
flatMapSingle
does not operate by default on a particularScheduler
.History: 1.2.7 - experimental
R
- the value type of the inner Singles and the resulting Observablemapper
- the function that receives an upstream value and turns it into a Single to be merged.delayErrors
- if true, errors from the upstream and from the inner Singles get delayed till the all of them terminate.flatMapSingle(Func1, boolean, int)
public final <R> Observable<R> flatMapSingle(Func1<? superT,? extendsSingle<? extends R>> mapper, boolean delayErrors, int maxConcurrency)
flatMapSingle
does not operate by default on a particularScheduler
.History: 1.2.7 - experimental
R
- the value type of the inner Singles and the resulting Observablemapper
- the function that receives an upstream value and turns it into a Single to be merged.delayErrors
- if true, errors from the upstream and from the inner Singles get delayed till the all of them terminate.maxConcurrency
- the maximum number of inner Singles to run at a timepublic final void forEach(Action1<? superT> onNext)
Observable
and receives notifications for each element. Alias tosubscribe(Action1)
Observable
in an unbounded manner (i.e., no backpressure is applied to it).forEach
does not operate by default on a particularScheduler
.onNext
-Action1
to execute for each item.java.lang.IllegalArgumentException
- ifonNext
is nullOnErrorNotImplementedException
- if the Observable callsonError
public final void forEach(Action1<? superT> onNext,Action1<java.lang.Throwable> onError)
Observable
and receives notifications for each element and error events. Alias tosubscribe(Action1, Action1)
Observable
in an unbounded manner (i.e., no backpressure is applied to it).forEach
does not operate by default on a particularScheduler
.onNext
-Action1
to execute for each item.onError
-Action1
to execute when an error is emitted.java.lang.IllegalArgumentException
- ifonNext
is null, or ifonError
is nullOnErrorNotImplementedException
- if the Observable callsonError
public final void forEach(Action1<? superT> onNext,Action1<java.lang.Throwable> onError,Action0 onComplete)
Observable
and receives notifications for each element and the terminal events. Alias tosubscribe(Action1, Action1, Action0)
Observable
in an unbounded manner (i.e., no backpressure is applied to it).forEach
does not operate by default on a particularScheduler
.onNext
-Action1
to execute for each item.onError
-Action1
to execute when an error is emitted.onComplete
-Action0
to execute when completion is signalled.java.lang.IllegalArgumentException
- ifonNext
is null, or ifonError
is null, or ifonComplete
is nullOnErrorNotImplementedException
- if the Observable callsonError
public final <K,R> Observable<GroupedObservable<K,R>> groupBy(Func1<? superT,? extends K> keySelector,Func1<? superT,? extends R> elementSelector)
Observable
according to a specified criterion, and emits these grouped items asGroupedObservable
s. The emittedGroupedObservable
allows only a singleSubscriber
during its lifetime and if thisSubscriber
unsubscribes before the source terminates, the next emission by the source having the same key will trigger a newGroupedObservable
emission.Note: AGroupedObservable
will cache the items it is to emit until such time as it is subscribed to. For this reason, in order to avoid memory leaks, you should not simply ignore thoseGroupedObservable
s that do not concern you. Instead, you can signal to them that they may discard their buffers by applying an operator likeignoreElements()
to them.
Observable
s honor backpressure and the sourceObservable
is consumed in a bounded mode (i.e., requested a fixed amount upfront and replenished based on downstream consumption). Note that both the returned and its innerObservable
s use unbounded internal buffers and if the sourceObservable
doesn't honor backpressure, thatmay lead toOutOfMemoryError
.groupBy
does not operate by default on a particularScheduler
.K
- the key typeR
- the element typekeySelector
- a function that extracts the key for each itemelementSelector
- a function that extracts the return element for each itemObservable
that emitsGroupedObservable
s, each of which corresponds to a unique key value and each of which emits those items from the source Observable that share that key value@Deprecatedpublic final <K,R> Observable<GroupedObservable<K,R>> groupBy(Func1<? superT,? extends K> keySelector,Func1<? superT,? extends R> elementSelector,Func1<Action1<K>,java.util.Map<K,java.lang.Object>> evictingMapFactory)
groupBy(Func1, Func1, int, boolean, Func1)
instead which uses much less memory. Please take note of the usage difference involving the evicting action which now expects the value from the map instead of the key.Observable
according to a specified criterion, and emits these grouped items asGroupedObservable
s. The emittedGroupedObservable
allows only a singleSubscriber
during its lifetime and if thisSubscriber
unsubscribes before the source terminates, the next emission by the source having the same key will trigger a newGroupedObservable
emission.Note: AGroupedObservable
will cache the items it is to emit until such time as it is subscribed to. For this reason, in order to avoid memory leaks, you should not simply ignore thoseGroupedObservable
s that do not concern you. Instead, you can signal to them that they may discard their buffers by applying an operator likeignoreElements()
to them.
Observable
s honor backpressure and the sourceObservable
is consumed in a bounded mode (i.e., requested a fixed amount upfront and replenished based on downstream consumption). Note that both the returned and its innerObservable
s use unbounded internal buffers and if the sourceObservable
doesn't honor backpressure, thatmay lead toOutOfMemoryError
.groupBy
does not operate by default on a particularScheduler
.K
- the key typeR
- the element typekeySelector
- a function that extracts the key for each itemelementSelector
- a function that extracts the return element for each itemevictingMapFactory
- a function that given an eviction action returns aMap
instance that will be used to assign items to the appropriateGroupedObservable
s. TheMap
instance must be thread-safe and any eviction must trigger a call to the supplied action (synchronously or asynchronously). This can be used to limit the size of the map by evicting keys by maximum size or access time for instance. Here's an example using Guava'sCacheBuilder
from v19.0: Func1<Action1<K>, Map<K, Object>> mapFactory = action -> CacheBuilder.newBuilder() .maximumSize(1000) .expireAfterAccess(12, TimeUnit.HOURS) .removalListener(notification -> action.call(notification.getKey())) .<K, Object> build().asMap();
Observable
that emitsGroupedObservable
s, each of which corresponds to a unique key value and each of which emits those items from the source Observable that share that key valuejava.lang.NullPointerException
- ifevictingMapFactory
is null@Experimentalpublic final <K,R> Observable<GroupedObservable<K,R>> groupBy(Func1<? superT,? extends K> keySelector,Func1<? superT,? extends R> elementSelector, int bufferSize, boolean delayError,Func1<Action1<java.lang.Object>,java.util.Map<K,java.lang.Object>> evictingMapFactory)
Observable
according to a specified criterion, and emits these grouped items asGroupedObservable
s. The emittedGroupedObservable
allows only a singleSubscriber
during its lifetime and if thisSubscriber
unsubscribes before the source terminates, the next emission by the source having the same key will trigger a newGroupedObservable
emission.Note: AGroupedObservable
will cache the items it is to emit until such time as it is subscribed to. For this reason, in order to avoid memory leaks, you should not simply ignore thoseGroupedObservable
s that do not concern you. Instead, you can signal to them that they may discard their buffers by applying an operator likeignoreElements()
to them.
Observable
s honor backpressure and the sourceObservable
is consumed in a bounded mode (i.e., requested a fixed amount upfront and replenished based on downstream consumption). Note that both the returned and its innerObservable
s use unbounded internal buffers and if the sourceObservable
doesn't honor backpressure, thatmay lead toOutOfMemoryError
.groupBy
does not operate by default on a particularScheduler
.K
- the key typeR
- the element typekeySelector
- a function that extracts the key for each itemelementSelector
- a function that extracts the return element for each itembufferSize
- the size of the buffer (RxRingBuffer.SIZE
may be suitable).delayError
- if and only if false then onError emissions can shortcut onNext emissions (emissions may be buffered)evictingMapFactory
- a function that given an eviction action returns aMap
instance that will be used to assign items to the appropriateGroupedObservable
s. TheMap
instance must be thread-safe and any eviction must trigger a call to the supplied action (synchronously or asynchronously). This can be used to limit the size of the map by evicting entries by map maximum size or access time for instance. Here's an example using Guava'sCacheBuilder
from v24.0: Func1<Action1<Object>, Map<K, Object>> mapFactory = action -> CacheBuilder.newBuilder() .maximumSize(1000) .expireAfterAccess(12, TimeUnit.HOURS) .removalListener(entry -> action.call(entry.getValue())) .<K, Object> build().asMap();
Observable
that emitsGroupedObservable
s, each of which corresponds to a unique key value and each of which emits those items from the source Observable that share that key valuejava.lang.NullPointerException
- ifevictingMapFactory
is nullpublic final <K> Observable<GroupedObservable<K,T>> groupBy(Func1<? superT,? extends K> keySelector)
Observable
according to a specified criterion, and emits these grouped items asGroupedObservable
s. The emittedGroupedObservable
allows only a singleSubscriber
during its lifetime and if thisSubscriber
unsubscribes before the source terminates, the next emission by the source having the same key will trigger a newGroupedObservable
emission.Note: AGroupedObservable
will cache the items it is to emit until such time as it is subscribed to. For this reason, in order to avoid memory leaks, you should not simply ignore thoseGroupedObservable
s that do not concern you. Instead, you can signal to them that they may discard their buffers by applying an operator likeignoreElements()
to them.
groupBy
does not operate by default on a particularScheduler
.K
- the key typekeySelector
- a function that extracts the key for each itemObservable
that emitsGroupedObservable
s, each of which corresponds to a unique key value and each of which emits those items from the source Observable that share that key valuepublic final <T2,D1,D2,R> Observable<R> groupJoin(Observable<T2> right,Func1<? superT,? extendsObservable<D1>> leftDuration,Func1<? super T2,? extendsObservable<D2>> rightDuration,Func2<? superT,? superObservable<T2>,? extends R> resultSelector)
There are no guarantees in what order the items get combined when multiple items from one or both source Observables overlap.
Observable
s in an unbounded mode (i.e., not applying any backpressure to them).groupJoin
does not operate by default on a particularScheduler
.T2
- the value type of the right Observable sourceD1
- the element type of the left duration ObservablesD2
- the element type of the right duration ObservablesR
- the result typeright
- the other Observable to correlate items from the source Observable withleftDuration
- a function that returns an Observable whose emissions indicate the duration of the values of the source ObservablerightDuration
- a function that returns an Observable whose emissions indicate the duration of the values of theright
ObservableresultSelector
- a function that takes an item emitted by each Observable and returns the value to be emitted by the resulting Observablepublic final Observable<T> ignoreElements()
onCompleted
oronError
.Observable
in an unbounded manner (i.e., no backpressure is applied to it).ignoreElements
does not operate by default on a particularScheduler
.onCompleted
oronError
, based on which one is called by the source Observablepublic final Observable<java.lang.Boolean> isEmpty()
true
if the source Observable is empty, otherwisefalse
. In Rx.Net this is negated as theany
Observer but we renamed this in RxJava to better match Java naming idioms.
Observable
in an unbounded manner (i.e., without applying backpressure).isEmpty
does not operate by default on a particularScheduler
.public final <TRight,TLeftDuration,TRightDuration,R> Observable<R> join(Observable<TRight> right,Func1<T,Observable<TLeftDuration>> leftDurationSelector,Func1<TRight,Observable<TRightDuration>> rightDurationSelector,Func2<T,TRight,R> resultSelector)
There are no guarantees in what order the items get combined when multiple items from one or both source Observables overlap.
Observable
s in an unbounded mode (i.e., not applying any backpressure to them).join
does not operate by default on a particularScheduler
.TRight
- the value type of the right Observable sourceTLeftDuration
- the element type of the left duration ObservablesTRightDuration
- the element type of the right duration ObservablesR
- the result typeright
- the second Observable to join items fromleftDurationSelector
- a function to select a duration for each item emitted by the source Observable, used to determine overlaprightDurationSelector
- a function to select a duration for each item emitted by theright
Observable, used to determine overlapresultSelector
- a function that computes an item to be emitted by the resulting Observable for any two overlapping items emitted by the two Observablespublic final Observable<T> last()
NoSuchElementException
if the source Observable is empty.Observable
in an unbounded manner (i.e., without applying backpressure).last
does not operate by default on a particularScheduler
.public final Observable<T> last(Func1<? superT,java.lang.Boolean> predicate)
NoSuchElementException
if no such items are emitted.Observable
in an unbounded manner (i.e., without applying backpressure).last
does not operate by default on a particularScheduler
.predicate
- the condition any source emitted item has to satisfyNoSuchElementException
if no such items are emittedjava.lang.IllegalArgumentException
- if no items that match the predicate are emitted by the source Observablepublic final Observable<T> lastOrDefault(T defaultValue)
Observable
in an unbounded manner (i.e., without applying backpressure).lastOrDefault
does not operate by default on a particularScheduler
.defaultValue
- the default item to emit if the source Observable is emptypublic final Observable<T> lastOrDefault(T defaultValue,Func1<? superT,java.lang.Boolean> predicate)
Observable
in an unbounded manner (i.e., without applying backpressure to it).lastOrDefault
does not operate by default on a particularScheduler
.defaultValue
- the default item to emit if the source Observable doesn't emit anything that satisfies the specifiedpredicate
predicate
- the condition any item emitted by the source Observable has to satisfypublic final Observable<T> limit(int count)
count
items emitted by the source Observable. Alias oftake(int)
to match Java 8 Stream API naming convention.
This method returns an Observable that will invoke a subscribingObserver
'sonNext
function a maximum ofcount
times before invokingonCompleted
.
Observable
's backpressure behavior in case the first request is smaller than thecount
. Otherwise, the sourceObservable
is consumed in an unbounded manner (i.e., without applying backpressure to it).limit
does not operate by default on a particularScheduler
.count
- the maximum number of items to emitcount
items emitted by the source Observable, or all of the items from the source Observable if that Observable emits fewer thancount
itemspublic final <R> Observable<R> map(Func1<? superT,? extends R> func)
Observable
's backpressure behavior.map
does not operate by default on a particularScheduler
.R
- the output typefunc
- a function to apply to each item emitted by the Observablepublic final Observable<Notification<T>> materialize()
Notification
objects.Observable
. If this expectation is violated, the operatormay throw anIllegalStateException
.materialize
does not operate by default on a particularScheduler
.public final Observable<T> mergeWith(Observable<? extendsT> t1)
You can combine items emitted by multiple Observables so that they appear as a single Observable, by using themergeWith
method.
Observable
s are expected to honor backpressure; if violated, the operatormay signalMissingBackpressureException
.mergeWith
does not operate by default on a particularScheduler
.t1
- an Observable to be mergedpublic final Observable<T> observeOn(Scheduler scheduler)
Scheduler
, asynchronously with a bounded buffer ofRxRingBuffer.SIZE
slots.Note that onError notifications will cut ahead of onNext notifications on the emission thread if Scheduler is truly asynchronous. If strict event ordering is required, consider using theobserveOn(Scheduler, boolean)
overload.
Observable
. Violating this expectation will lead toMissingBackpressureException
. This is the most common operator where the exception pops up; look for sources up the chain that don't support backpressure, such asinterval
,timer
, {code PublishSubject} orBehaviorSubject
and apply any of theonBackpressureXXX
operatorsbefore applyingobserveOn
itself.Scheduler
this operator will usescheduler
- theScheduler
to notifyObserver
s onObserver
s are notified on the specifiedScheduler
subscribeOn(rx.Scheduler)
,observeOn(Scheduler, int)
,observeOn(Scheduler, boolean)
,observeOn(Scheduler, boolean, int)
public final Observable<T> observeOn(Scheduler scheduler, int bufferSize)
Scheduler
, asynchronously with a bounded buffer of configurable size.Note that onError notifications will cut ahead of onNext notifications on the emission thread if Scheduler is truly asynchronous. If strict event ordering is required, consider using theobserveOn(Scheduler, boolean)
overload.
Observable
. Violating this expectation will lead toMissingBackpressureException
. This is the most common operator where the exception pops up; look for sources up the chain that don't support backpressure, such asinterval
,timer
, {code PublishSubject} orBehaviorSubject
and apply any of theonBackpressureXXX
operatorsbefore applyingobserveOn
itself.Scheduler
this operator will usescheduler
- theScheduler
to notifyObserver
s onbufferSize
- the size of the buffer.Observer
s are notified on the specifiedScheduler
subscribeOn(rx.Scheduler)
,observeOn(Scheduler)
,observeOn(Scheduler, boolean)
,observeOn(Scheduler, boolean, int)
public final Observable<T> observeOn(Scheduler scheduler, boolean delayError)
Scheduler
, asynchronously with a bounded buffer and optionally delays onError notifications.Observable
. Violating this expectation will lead toMissingBackpressureException
. This is the most common operator where the exception pops up; look for sources up the chain that don't support backpressure, such asinterval
,timer
, {code PublishSubject} orBehaviorSubject
and apply any of theonBackpressureXXX
operatorsbefore applyingobserveOn
itself.Scheduler
this operator will usescheduler
- theScheduler
to notifyObserver
s ondelayError
- indicates if the onError notification may not cut ahead of onNext notification on the other side of the scheduling boundary. If true a sequence ending in onError will be replayed in the same order as was received from upstreamObserver
s are notified on the specifiedScheduler
subscribeOn(rx.Scheduler)
,observeOn(Scheduler)
,observeOn(Scheduler, int)
,observeOn(Scheduler, boolean, int)
public final Observable<T> observeOn(Scheduler scheduler, boolean delayError, int bufferSize)
Scheduler
, asynchronously with a bounded buffer of configurable size and optionally delays onError notifications.Observable
. Violating this expectation will lead toMissingBackpressureException
. This is the most common operator where the exception pops up; look for sources up the chain that don't support backpressure, such asinterval
,timer
, {code PublishSubject} orBehaviorSubject
and apply any of theonBackpressureXXX
operatorsbefore applyingobserveOn
itself.Scheduler
this operator will usescheduler
- theScheduler
to notifyObserver
s ondelayError
- indicates if the onError notification may not cut ahead of onNext notification on the other side of the scheduling boundary. If true a sequence ending in onError will be replayed in the same order as was received from upstreambufferSize
- the size of the buffer.Observer
s are notified on the specifiedScheduler
subscribeOn(rx.Scheduler)
,observeOn(Scheduler)
,observeOn(Scheduler, int)
,observeOn(Scheduler, boolean)
public final <R> Observable<R> ofType(java.lang.Class<R> klass)
Observable
's backpressure behavior.ofType
does not operate by default on a particularScheduler
.R
- the output typeklass
- the class type to filter the items emitted by the source Observableklass
public final Observable<T> onBackpressureBuffer()
Observable
in an unbounded manner (i.e., not applying backpressure to it).onBackpressureBuffer
does not operate by default on a particularScheduler
.public final Observable<T> onBackpressureBuffer(long capacity)
onError
emitting aBufferOverflowException
as soon as the buffer's capacity is exceeded, dropping all undelivered items, and unsubscribing from the source.Observable
in an unbounded manner (i.e., not applying backpressure to it).onBackpressureBuffer
does not operate by default on a particularScheduler
.capacity
- number of slots available in the buffer.Observable
modified to buffer items up to the given capacity.public final Observable<T> onBackpressureBuffer(long capacity,Action0 onOverflow)
onError
emitting aBufferOverflowException
as soon as the buffer's capacity is exceeded, dropping all undelivered items, unsubscribing from the source, and notifying the producer withonOverflow
.Observable
in an unbounded manner (i.e., not applying backpressure to it).onBackpressureBuffer
does not operate by default on a particularScheduler
.capacity
- number of slots available in the buffer.onOverflow
- action to execute if an item needs to be buffered, but there are no available slots. Null is allowed.Observable
modified to buffer items up to the given capacitypublic final Observable<T> onBackpressureBuffer(long capacity,Action0 onOverflow,BackpressureOverflow.Strategy overflowStrategy)
overflowStrategy
if the buffer capacity is exceeded.BackpressureOverflow.Strategy.ON_OVERFLOW_ERROR
(default) willonError
dropping all undelivered items, unsubscribing from the source, and notifying the producer withonOverflow
.BackpressureOverflow.Strategy.ON_OVERFLOW_DROP_LATEST
will drop any new items emitted by the producer while the buffer is full, without generating anyonError
. Each drop will however invokeonOverflow
to signal the overflow to the producer.BackpressureOverflow.Strategy.ON_OVERFLOW_DROP_OLDEST
will drop the oldest items in the buffer in order to make room for newly emitted ones. Overflow will not generate anonError
, but each drop will invokeonOverflow
to signal the overflow to the producer.Observable
in an unbounded manner (i.e., not applying backpressure to it).onBackpressureBuffer
does not operate by default on a particularScheduler
.capacity
- number of slots available in the buffer.onOverflow
- action to execute if an item needs to be buffered, but there are no available slots. Null is allowed.overflowStrategy
- how should theObservable
react to buffer overflows. Null is not allowed.Observable
modified to buffer items up to the given capacitypublic final Observable<T> onBackpressureDrop(Action1<? superT> onDrop)
If the downstream request count hits 0 then the Observable will refrain from callingonNext
until the observer invokesrequest(n)
again to increase the request count.
Observable
in an unbounded manner (i.e., not applying backpressure to it).onBackpressureDrop
does not operate by default on a particularScheduler
.onDrop
- the action to invoke for each item dropped. onDrop action should be fast and should never block.onNext
notifications on overflowpublic final Observable<T> onBackpressureDrop()
If the downstream request count hits 0 then the Observable will refrain from callingonNext
until the observer invokesrequest(n)
again to increase the request count.
Observable
in an unbounded manner (i.e., not applying backpressure to it).onBackpressureDrop
does not operate by default on a particularScheduler
.onNext
notifications on overflowpublic final Observable<T> onBackpressureLatest()
Its behavior is logically equivalent totoBlocking().latest()
with the exception that the downstream is not blocking while requesting more values.
Note that if the upstream Observable does support backpressure, this operator ignores that capability and doesn't propagate any backpressure requests from downstream.
Note that due to the nature of how backpressure requests are propagated through subscribeOn/observeOn, requesting more than 1 from downstream doesn't guarantee a continuous delivery of onNext events.
Observable
in an unbounded manner (i.e., not applying backpressure to it).onBackpressureLatest
does not operate by default on a particularScheduler
.public final Observable<T> onErrorResumeNext(Func1<? super java.lang.Throwable,? extendsObservable<? extendsT>> resumeFunction)
onError
if it encounters an error. By default, when an Observable encounters an error that prevents it from emitting the expected item to itsObserver
, the Observable invokes its Observer'sonError
method, and then quits without invoking any more of its Observer's methods. TheonErrorResumeNext
method changes this behavior. If you pass a function that returns an Observable (resumeFunction
) toonErrorResumeNext
, if the original Observable encounters an error, instead of invoking its Observer'sonError
method, it will instead relinquish control to the Observable returned fromresumeFunction
, which will invoke the Observer'sonNext
method if it is able to do so. In such a case, because no Observable necessarily invokesonError
, the Observer may never know that an error happened.
You can use this to prevent errors from propagating or to supply fallback data should errors be encountered.
Observable
s are expected to honor backpressure as well. If any of them violate this expectation, the operatormay throw anIllegalStateException
when the sourceObservable
completes or aMissingBackpressureException
is signalled somewhere downstream.onErrorResumeNext
does not operate by default on a particularScheduler
.resumeFunction
- a function that returns an Observable that will take over if the source Observable encounters an errorpublic final Observable<T> onErrorResumeNext(Observable<? extendsT> resumeSequence)
onError
if it encounters an error. By default, when an Observable encounters an error that prevents it from emitting the expected item to itsObserver
, the Observable invokes its Observer'sonError
method, and then quits without invoking any more of its Observer's methods. TheonErrorResumeNext
method changes this behavior. If you pass another Observable (resumeSequence
) to an Observable'sonErrorResumeNext
method, if the original Observable encounters an error, instead of invoking its Observer'sonError
method, it will instead relinquish control toresumeSequence
which will invoke the Observer'sonNext
method if it is able to do so. In such a case, because no Observable necessarily invokesonError
, the Observer may never know that an error happened.
You can use this to prevent errors from propagating or to supply fallback data should errors be encountered.
Observable
s are expected to honor backpressure as well. If any of them violate this expectation, the operatormay throw anIllegalStateException
when the sourceObservable
completes orMissingBackpressureException
is signalled somewhere downstream.onErrorResumeNext
does not operate by default on a particularScheduler
.resumeSequence
- a function that returns an Observable that will take over if the source Observable encounters an errorpublic final Observable<T> onErrorReturn(Func1<? super java.lang.Throwable,? extendsT> resumeFunction)
onError
if it encounters an error. By default, when an Observable encounters an error that prevents it from emitting the expected item to itsObserver
, the Observable invokes its Observer'sonError
method, and then quits without invoking any more of its Observer's methods. TheonErrorReturn
method changes this behavior. If you pass a function (resumeFunction
) to an Observable'sonErrorReturn
method, if the original Observable encounters an error, instead of invoking its Observer'sonError
method, it will instead emit the return value ofresumeFunction
.
You can use this to prevent errors from propagating or to supply fallback data should errors be encountered.
Observable
s is expected to honor backpressure as well. If it this expectation is violated, the operatormay throwIllegalStateException
when the sourceObservable
completes orMissingBackpressureException
is signalled somewhere downstream.onErrorReturn
does not operate by default on a particularScheduler
.resumeFunction
- a function that returns an item that the new Observable will emit if the source Observable encounters an errorpublic final Observable<T> onExceptionResumeNext(Observable<? extendsT> resumeSequence)
onError
if it encounters anException
. This differs fromonErrorResumeNext(rx.functions.Func1<? super java.lang.Throwable, ? extends rx.Observable<? extends T>>)
in that this one does not handleThrowable
orError
but lets those continue through.
By default, when an Observable encounters an exception that prevents it from emitting the expected item to itsObserver
, the Observable invokes its Observer'sonError
method, and then quits without invoking any more of its Observer's methods. TheonExceptionResumeNext
method changes this behavior. If you pass another Observable (resumeSequence
) to an Observable'sonExceptionResumeNext
method, if the original Observable encounters an exception, instead of invoking its Observer'sonError
method, it will instead relinquish control toresumeSequence
which will invoke the Observer'sonNext
method if it is able to do so. In such a case, because no Observable necessarily invokesonError
, the Observer may never know that an exception happened.
You can use this to prevent exceptions from propagating or to supply fallback data should exceptions be encountered.
Observable
s are expected to honor backpressure as well. If any of them violate this expectation, the operatormay throw anIllegalStateException
when the sourceObservable
completes orMissingBackpressureException
is signalled somewhere downstream.onExceptionResumeNext
does not operate by default on a particularScheduler
.resumeSequence
- a function that returns an Observable that will take over if the source Observable encounters an exceptionpublic final Observable<T> onTerminateDetach()
Observable
's backpressure behavior.onTerminateDetach
does not operate by default on a particularScheduler
.public final ConnectableObservable<T> publish()
ConnectableObservable
, which is a variety of Observable that waits until itsconnect
method is called before it begins emitting items to thoseObserver
s that have subscribed to it.ConnectableObservable
honors backpressure for each of itsSubscriber
s and expects the sourceObservable
to honor backpressure as well. If this expectation is violated, the operator will signal aMissingBackpressureException
to itsSubscriber
s and disconnect.publish
does not operate by default on a particularScheduler
.ConnectableObservable
that upon connection causes the source Observable to emit items to itsObserver
spublic final <R> Observable<R> publish(Func1<? superObservable<T>,? extendsObservable<R>> selector)
ConnectableObservable
that shares a single subscription to the underlying sequence.Observable
to honor backpressure and if this expectation is violated, the operator will signal aMissingBackpressureException
through theObservable
provided to the function. Since theObservable
returned by theselector
may be independent from the providedObservable
to the function, the output's backpressure behavior is determined by this returnedObservable
.publish
does not operate by default on a particularScheduler
.R
- the type of items emitted by the resulting Observableselector
- a function that can use the multicasted source sequence as many times as needed, without causing multiple subscriptions to the source sequence. Subscribers to the given source will receive all notifications of the source from the time of the subscription forward.ConnectableObservable
that shares a single subscription to the underlying sequencepublic final Observable<T> rebatchRequests(int n)
n
initially from the upstream and then 75% ofn
subsequently after 75% ofn
values have been emitted to the downstream.This operator allows preventing the downstream to trigger unbounded mode viarequest(Long.MAX_VALUE)
or compensate for the per-item overhead of small and frequent requests.
rebatchRequests
does not operate by default on a particularScheduler
.n
- the initial request amount, further request will happen after 75% of this valuepublic final Observable<T> reduce(Func2<T,T,T> accumulator)
This technique, which is called "reduce" here, is sometimes called "aggregate," "fold," "accumulate," "compress," or "inject" in other programming contexts. Groovy, for instance, has aninject
method that does a similar operation on lists.
reduce
does not operate by default on a particularScheduler
.accumulator
- an accumulator function to be invoked on each item emitted by the source Observable, whose result will be used in the next accumulator calljava.lang.IllegalArgumentException
- if the source Observable emits no itemspublic final <R> Observable<R> reduce(R initialValue,Func2<R,? superT,R> accumulator)
This technique, which is called "reduce" here, is sometimes called "aggregate," "fold," "accumulate," "compress," or "inject" in other programming contexts. Groovy, for instance, has aninject
method that does a similar operation on lists.
Note that theinitialValue
is shared among all subscribers to the resulting Observable and may cause problems if it is mutable. To make sure each subscriber gets its own value, defer the application of this operator viadefer(Func0)
:
Observable<T> source = ... Observable.defer(() -> source.reduce(new ArrayList<>(), (list, item) -> list.add(item))); // alternatively, by using compose to stay fluent source.compose(o -> Observable.defer(() -> o.reduce(new ArrayList<>(), (list, item) -> list.add(item))) );
reduce
does not operate by default on a particularScheduler
.R
- the accumulator and output value typeinitialValue
- the initial (seed) accumulator valueaccumulator
- an accumulator function to be invoked on each item emitted by the source Observable, the result of which will be used in the next accumulator callpublic final Observable<T> repeat()
Observable
to honor backpressure as well. If this expectation is violated, the operatormay throw anIllegalStateException
.repeat
operates by default on thetrampoline
Scheduler
.public final Observable<T> repeat(Scheduler scheduler)
Observable
to honor backpressure as well. If this expectation is violated, the operatormay throw anIllegalStateException
.Scheduler
this operator will usescheduler
- the Scheduler to emit the items onpublic final Observable<T> repeat(long count)
count
times.Observable
to honor backpressure as well. If this expectation is violated, the operatormay throw anIllegalStateException
.repeat
operates by default on thetrampoline
Scheduler
.count
- the number of times the source Observable items are repeated, a count of 0 will yield an empty sequencecount
timesjava.lang.IllegalArgumentException
- ifcount
is less than zeropublic final Observable<T> repeat(long count,Scheduler scheduler)
count
times, on a particular Scheduler.Observable
to honor backpressure as well. If this expectation is violated, the operatormay throw anIllegalStateException
.Scheduler
this operator will usecount
- the number of times the source Observable items are repeated, a count of 0 will yield an empty sequencescheduler
- theScheduler
to emit the items oncount
times on a particular Schedulerpublic final Observable<T> repeatWhen(Func1<? superObservable<? extends java.lang.Void>,? extendsObservable<?>> notificationHandler,Scheduler scheduler)
onCompleted
. AnonCompleted
notification from the source will result in the emission of avoid
item to the Observable provided as an argument to thenotificationHandler
function. If that Observable callsonComplete
oronError
thenrepeatWhen
will callonCompleted
oronError
on the child subscription. Otherwise, this Observable will resubscribe to the source Observable, on a particular Scheduler.Observable
to honor backpressure as well. If this expectation is violated, the operatormay throw anIllegalStateException
.Scheduler
this operator will usenotificationHandler
- receives an Observable of notifications with which a user can complete or error, aborting the repeat.scheduler
- theScheduler
to emit the items onpublic final Observable<T> repeatWhen(Func1<? superObservable<? extends java.lang.Void>,? extendsObservable<?>> notificationHandler)
onCompleted
. AnonCompleted
notification from the source will result in the emission of avoid
item to the Observable provided as an argument to thenotificationHandler
function. If that Observable callsonComplete
oronError
thenrepeatWhen
will callonCompleted
oronError
on the child subscription. Otherwise, this Observable will resubscribe to the source observable.Observable
to honor backpressure as well. If this expectation is violated, the operatormay throw anIllegalStateException
.repeatWhen
operates by default on thetrampoline
Scheduler
.notificationHandler
- receives an Observable of notifications with which a user can complete or error, aborting the repeat.public final ConnectableObservable<T> replay()
ConnectableObservable
that shares a single subscription to the underlying Observable that will replay all of its items and notifications to any futureObserver
. A Connectable Observable resembles an ordinary Observable, except that it does not begin emitting items when it is subscribed to, but only when itsconnect
method is called.replay
does not operate by default on a particularScheduler
.ConnectableObservable
that upon connection causes the source Observable to emit its items to itsObserver
spublic final <R> Observable<R> replay(Func1<? superObservable<T>,? extendsObservable<R>> selector)
ConnectableObservable
that shares a single subscription to the source Observable.replay
does not operate by default on a particularScheduler
.R
- the type of items emitted by the resulting Observableselector
- the selector function, which can use the multicasted sequence as many times as needed, without causing multiple subscriptions to the ObservableConnectableObservable
that shares a single subscription to the source Observablepublic final <R> Observable<R> replay(Func1<? superObservable<T>,? extendsObservable<R>> selector, int bufferSize)
ConnectableObservable
that shares a single subscription to the source Observable, replayingbufferSize
notifications.replay
does not operate by default on a particularScheduler
.R
- the type of items emitted by the resulting Observableselector
- the selector function, which can use the multicasted sequence as many times as needed, without causing multiple subscriptions to the ObservablebufferSize
- the buffer size that limits the number of items the connectable observable can replayConnectableObservable
that shares a single subscription to the source Observable replaying no more thanbufferSize
itemspublic final <R> Observable<R> replay(Func1<? superObservable<T>,? extendsObservable<R>> selector, int bufferSize, long time, java.util.concurrent.TimeUnit unit)
ConnectableObservable
that shares a single subscription to the source Observable, replaying no more thanbufferSize
items that were emitted within a specified time window.replay
operates by default on thecomputation
Scheduler
.R
- the type of items emitted by the resulting Observableselector
- a selector function, which can use the multicasted sequence as many times as needed, without causing multiple subscriptions to the ObservablebufferSize
- the buffer size that limits the number of items the connectable observable can replaytime
- the duration of the window in which the replayed items must have been emittedunit
- the time unit oftime
ConnectableObservable
that shares a single subscription to the source Observable, and replays no more thanbufferSize
items that were emitted within the window defined bytime
public final <R> Observable<R> replay(Func1<? superObservable<T>,? extendsObservable<R>> selector, int bufferSize, long time, java.util.concurrent.TimeUnit unit,Scheduler scheduler)
ConnectableObservable
that shares a single subscription to the source Observable, replaying no more thanbufferSize
items that were emitted within a specified time window.Scheduler
this operator will useR
- the type of items emitted by the resulting Observableselector
- a selector function, which can use the multicasted sequence as many times as needed, without causing multiple subscriptions to the ObservablebufferSize
- the buffer size that limits the number of items the connectable observable can replaytime
- the duration of the window in which the replayed items must have been emittedunit
- the time unit oftime
scheduler
- the Scheduler that is the time source for the windowConnectableObservable
that shares a single subscription to the source Observable, and replays no more thanbufferSize
items that were emitted within the window defined bytime
java.lang.IllegalArgumentException
- ifbufferSize
is less than zeropublic final <R> Observable<R> replay(Func1<? superObservable<T>,? extendsObservable<R>> selector, int bufferSize,Scheduler scheduler)
ConnectableObservable
that shares a single subscription to the source Observable, replaying a maximum ofbufferSize
items.Scheduler
this operator will useR
- the type of items emitted by the resulting Observableselector
- a selector function, which can use the multicasted sequence as many times as needed, without causing multiple subscriptions to the ObservablebufferSize
- the buffer size that limits the number of items the connectable observable can replayscheduler
- the Scheduler on which the replay is observedConnectableObservable
that shares a single subscription to the source Observable, replaying no more thanbufferSize
notificationspublic final <R> Observable<R> replay(Func1<? superObservable<T>,? extendsObservable<R>> selector, long time, java.util.concurrent.TimeUnit unit)
ConnectableObservable
that shares a single subscription to the source Observable, replaying all items that were emitted within a specified time window.replay
operates by default on thecomputation
Scheduler
.R
- the type of items emitted by the resulting Observableselector
- a selector function, which can use the multicasted sequence as many times as needed, without causing multiple subscriptions to the Observabletime
- the duration of the window in which the replayed items must have been emittedunit
- the time unit oftime
ConnectableObservable
that shares a single subscription to the source Observable, replaying all items that were emitted within the window defined bytime
public final <R> Observable<R> replay(Func1<? superObservable<T>,? extendsObservable<R>> selector, long time, java.util.concurrent.TimeUnit unit,Scheduler scheduler)
ConnectableObservable
that shares a single subscription to the source Observable, replaying all items that were emitted within a specified time window.Scheduler
this operator will useR
- the type of items emitted by the resulting Observableselector
- a selector function, which can use the multicasted sequence as many times as needed, without causing multiple subscriptions to the Observabletime
- the duration of the window in which the replayed items must have been emittedunit
- the time unit oftime
scheduler
- the scheduler that is the time source for the windowConnectableObservable
that shares a single subscription to the source Observable, replaying all items that were emitted within the window defined bytime
public final <R> Observable<R> replay(Func1<? superObservable<T>,? extendsObservable<R>> selector,Scheduler scheduler)
ConnectableObservable
that shares a single subscription to the source Observable.Scheduler
this operator will useR
- the type of items emitted by the resulting Observableselector
- a selector function, which can use the multicasted sequence as many times as needed, without causing multiple subscriptions to the Observablescheduler
- the Scheduler where the replay is observedConnectableObservable
that shares a single subscription to the source Observable, replaying all itemspublic final ConnectableObservable<T> replay(int bufferSize)
ConnectableObservable
that shares a single subscription to the source Observable that replays at mostbufferSize
items emitted by that Observable. A Connectable Observable resembles an ordinary Observable, except that it does not begin emitting items when it is subscribed to, but only when itsconnect
method is called.replay
does not operate by default on a particularScheduler
.bufferSize
- the buffer size that limits the number of items that can be replayedConnectableObservable
that shares a single subscription to the source Observable and replays at mostbufferSize
items emitted by that Observablepublic final ConnectableObservable<T> replay(int bufferSize, long time, java.util.concurrent.TimeUnit unit)
ConnectableObservable
that shares a single subscription to the source Observable and replays at mostbufferSize
items that were emitted during a specified time window. A Connectable Observable resembles an ordinary Observable, except that it does not begin emitting items when it is subscribed to, but only when itsconnect
method is called.replay
operates by default on thecomputation
Scheduler
.bufferSize
- the buffer size that limits the number of items that can be replayedtime
- the duration of the window in which the replayed items must have been emittedunit
- the time unit oftime
ConnectableObservable
that shares a single subscription to the source Observable and replays at mostbufferSize
items that were emitted during the window defined bytime
public final ConnectableObservable<T> replay(int bufferSize, long time, java.util.concurrent.TimeUnit unit,Scheduler scheduler)
ConnectableObservable
that shares a single subscription to the source Observable and that replays a maximum ofbufferSize
items that are emitted within a specified time window. A Connectable Observable resembles an ordinary Observable, except that it does not begin emitting items when it is subscribed to, but only when itsconnect
method is called.Scheduler
this operator will usebufferSize
- the buffer size that limits the number of items that can be replayedtime
- the duration of the window in which the replayed items must have been emittedunit
- the time unit oftime
scheduler
- the scheduler that is used as a time source for the windowConnectableObservable
that shares a single subscription to the source Observable and replays at mostbufferSize
items that were emitted during the window defined bytime
java.lang.IllegalArgumentException
- ifbufferSize
is less than zeropublic final ConnectableObservable<T> replay(int bufferSize,Scheduler scheduler)
ConnectableObservable
that shares a single subscription to the source Observable and replays at mostbufferSize
items emitted by that Observable. A Connectable Observable resembles an ordinary Observable, except that it does not begin emitting items when it is subscribed to, but only when itsconnect
method is called.Scheduler
this operator will usebufferSize
- the buffer size that limits the number of items that can be replayedscheduler
- the scheduler on which the Observers will observe the emitted itemsConnectableObservable
that shares a single subscription to the source Observable and replays at mostbufferSize
items that were emitted by the Observablepublic final ConnectableObservable<T> replay(long time, java.util.concurrent.TimeUnit unit)
ConnectableObservable
that shares a single subscription to the source Observable and replays all items emitted by that Observable within a specified time window. A Connectable Observable resembles an ordinary Observable, except that it does not begin emitting items when it is subscribed to, but only when itsconnect
method is called.replay
operates by default on thecomputation
Scheduler
.time
- the duration of the window in which the replayed items must have been emittedunit
- the time unit oftime
ConnectableObservable
that shares a single subscription to the source Observable and replays the items that were emitted during the window defined bytime
public final ConnectableObservable<T> replay(long time, java.util.concurrent.TimeUnit unit,Scheduler scheduler)
ConnectableObservable
that shares a single subscription to the source Observable and replays all items emitted by that Observable within a specified time window. A Connectable Observable resembles an ordinary Observable, except that it does not begin emitting items when it is subscribed to, but only when itsconnect
method is called.Scheduler
this operator will usetime
- the duration of the window in which the replayed items must have been emittedunit
- the time unit oftime
scheduler
- the Scheduler that is the time source for the windowConnectableObservable
that shares a single subscription to the source Observable and replays the items that were emitted during the window defined bytime
public final ConnectableObservable<T> replay(Scheduler scheduler)
ConnectableObservable
that shares a single subscription to the source Observable that will replay all of its items and notifications to any futureObserver
on the givenScheduler
. A Connectable Observable resembles an ordinary Observable, except that it does not begin emitting items when it is subscribed to, but only when itsconnect
method is called.Scheduler
this operator will usescheduler
- the Scheduler on which the Observers will observe the emitted itemsConnectableObservable
that shares a single subscription to the source Observable that will replay all of its items and notifications to any futureObserver
on the givenScheduler
public final Observable<T> retry()
onError
(infinite retry count). If the source Observable callsObserver.onError(java.lang.Throwable)
, this method will resubscribe to the source Observable rather than propagating theonError
call.
Any and all items emitted by the source Observable will be emitted by the resulting Observable, even those emitted during failed subscriptions. For example, if an Observable fails at first but emits[1, 2]
then succeeds the second time and emits[1, 2, 3, 4, 5]
then the complete sequence of emissions and notifications would be[1, 2, 1, 2, 3, 4, 5, onCompleted]
.
Observable
to honor backpressure as well. If this expectation is violated, the operatormay throw anIllegalStateException
.retry
operates by default on thetrampoline
Scheduler
.public final Observable<T> retry(long count)
onError
up to a specified number of retries. If the source Observable callsObserver.onError(java.lang.Throwable)
, this method will resubscribe to the source Observable for a maximum ofcount
resubscriptions rather than propagating theonError
call.
Any and all items emitted by the source Observable will be emitted by the resulting Observable, even those emitted during failed subscriptions. For example, if an Observable fails at first but emits[1, 2]
then succeeds the second time and emits[1, 2, 3, 4, 5]
then the complete sequence of emissions and notifications would be[1, 2, 1, 2, 3, 4, 5, onCompleted]
.
Observable
to honor backpressure as well. If this expectation is violated, the operatormay throw anIllegalStateException
.retry
operates by default on thetrampoline
Scheduler
.count
- number of retry attempts before failingpublic final Observable<T> retry(Func2<java.lang.Integer,java.lang.Throwable,java.lang.Boolean> predicate)
onError
and the predicate returns true for that specific exception and retry count.Observable
to honor backpressure as well. If this expectation is violated, the operatormay throw anIllegalStateException
.retry
operates by default on thetrampoline
Scheduler
.predicate
- the predicate that determines if a resubscription may happen in case of a specific exception and retry countretry()
,ReactiveX operators documentation: Retrypublic final Observable<T> retryWhen(Func1<? superObservable<? extends java.lang.Throwable>,? extendsObservable<?>> notificationHandler)
onError
. AnonError
notification from the source will result in the emission of aThrowable
item to the Observable provided as an argument to thenotificationHandler
function. If that Observable callsonComplete
oronError
thenretry
will callonCompleted
oronError
on the child subscription. Otherwise, this Observable will resubscribe to the source Observable. Example: This retries 3 times, each time incrementing the number of seconds it waits.
Observable.create((Subscriber super String> s) -> { System.out.println("subscribing"); s.onError(new RuntimeException("always fails")); }).retryWhen(attempts -> { return attempts.zipWith(Observable.range(1, 3), (n, i) -> i).flatMap(i -> { System.out.println("delay retry by " + i + " second(s)"); return Observable.timer(i, TimeUnit.SECONDS); }); }).toBlocking().forEach(System.out::println);
Output is: subscribing delay retry by 1 second(s) subscribing delay retry by 2 second(s) subscribing delay retry by 3 second(s) subscribing
Observable
to honor backpressure as well. If this expectation is violated, the operatormay throw anIllegalStateException
.retryWhen
operates by default on thetrampoline
Scheduler
.notificationHandler
- receives an Observable of notifications with which a user can complete or error, aborting the retrypublic final Observable<T> retryWhen(Func1<? superObservable<? extends java.lang.Throwable>,? extendsObservable<?>> notificationHandler,Scheduler scheduler)
onError
. AnonError
will cause the emission of theThrowable
that cause the error to the Observable returned fromnotificationHandler
. If that Observable callsonComplete
oronError
thenretry
will callonCompleted
oronError
on the child subscription. Otherwise, this Observable will resubscribe to the source observable, on a particular Scheduler.Observable
to honor backpressure as well. If this expectation is violated, the operatormay throw anIllegalStateException
.Scheduler
this operator will usenotificationHandler
- receives an Observable of notifications with which a user can complete or error, aborting the retryscheduler
- theScheduler
on which to subscribe to the source Observablepublic final Observable<T> sample(long period, java.util.concurrent.TimeUnit unit)
sample
operates by default on thecomputation
Scheduler
.period
- the sampling rateunit
- theTimeUnit
in whichperiod
is definedthrottleLast(long, TimeUnit)
public final Observable<T> sample(long period, java.util.concurrent.TimeUnit unit,Scheduler scheduler)
Scheduler
this operator will useperiod
- the sampling rateunit
- theTimeUnit
in whichperiod
is definedscheduler
- theScheduler
to use when samplingthrottleLast(long, TimeUnit, Scheduler)
public final <U> Observable<T> sample(Observable<U> sampler)
sampler
Observable emits an item or completes, emits the most recently emitted item (if any) emitted by the source Observable since the previous emission from thesampler
Observable.sampler
Observable to control data flow.sample
does not operate by default on a particularScheduler
.U
- the element type of the sampler Observablesampler
- the Observable to use for sampling the source Observablesampler
Observable emits an item or completespublic final Observable<T> scan(Func2<T,T,T> accumulator)
This sort of function is sometimes called an accumulator.
Observable
to honor backpressure as well. Violating this expectation, aMissingBackpressureException
may get signalled somewhere downstream.scan
does not operate by default on a particularScheduler
.accumulator
- an accumulator function to be invoked on each item emitted by the source Observable, whose result will be emitted toObserver
s viaonNext
and used in the next accumulator callpublic final <R> Observable<R> scan(R initialValue,Func2<R,? superT,R> accumulator)
This sort of function is sometimes called an accumulator.
Note that the Observable that results from this method will emitinitialValue
as its first emitted item.
Note that theinitialValue
is shared among all subscribers to the resulting Observable and may cause problems if it is mutable. To make sure each subscriber gets its own value, defer the application of this operator viadefer(Func0)
:
Observable<T> source = ... Observable.defer(() -> source.scan(new ArrayList<>(), (list, item) -> list.add(item))); // alternatively, by using compose to stay fluent source.compose(o -> Observable.defer(() -> o.scan(new ArrayList<>(), (list, item) -> list.add(item))) );
Observable
to honor backpressure as well. Violating this expectation, aMissingBackpressureException
may get signalled somewhere downstream.scan
does not operate by default on a particularScheduler
.R
- the initial, accumulator and result typeinitialValue
- the initial (seed) accumulator itemaccumulator
- an accumulator function to be invoked on each item emitted by the source Observable, whose result will be emitted toObserver
s viaonNext
and used in the next accumulator callinitialValue
followed by the results of each call to the accumulator functionpublic final Observable<T> serialize()
It is possible for an Observable to invoke its Subscribers' methods asynchronously, perhaps from different threads. This could make such an Observable poorly-behaved, in that it might try to invokeonCompleted
oronError
before one of itsonNext
invocations, or it might callonNext
from two different threads concurrently. You can force such an Observable to be well-behaved and sequential by applying theserialize
method to it.
Observable
's backpressure behavior.serialize
does not operate by default on a particularScheduler
.Observable
that is guaranteed to be well-behaved and to make only serialized calls to its observerspublic final Observable<T> share()
Observable
that multicasts (shares) the originalObservable
. As long as there is at least oneSubscriber
thisObservable
will be subscribed and emitting data. When all subscribers have unsubscribed it will unsubscribe from the sourceObservable
. This is an alias forpublish()
.ConnectableObservable.refCount()
.
Observable
to honor backpressure as well. If this expectation is violated, the operator will signal aMissingBackpressureException
to itsSubscriber
s.share
does not operate by default on a particularScheduler
.Observable
that upon connection causes the sourceObservable
to emit items to itsObserver
spublic final Observable<T> single()
IllegalArgumentException
orNoSuchElementException
respectively.Observable
in an unbounded manner (i.e., without applying backpressure).single
does not operate by default on a particularScheduler
.java.lang.IllegalArgumentException
- if the source emits more than one itemjava.util.NoSuchElementException
- if the source emits no itemspublic final Observable<T> single(Func1<? superT,java.lang.Boolean> predicate)
IllegalArgumentException
orNoSuchElementException
respectively.Observable
in an unbounded manner (i.e., without applying backpressure).single
does not operate by default on a particularScheduler
.predicate
- a predicate function to evaluate items emitted by the source Observablejava.lang.IllegalArgumentException
- if the source Observable emits more than one item that matches the predicatejava.util.NoSuchElementException
- if the source Observable emits no item that matches the predicatepublic final Observable<T> singleOrDefault(T defaultValue)
IllegalArgumentException
.Observable
in an unbounded manner (i.e., without applying backpressure).singleOrDefault
does not operate by default on a particularScheduler
.defaultValue
- a default value to emit if the source Observable emits no itemjava.lang.IllegalArgumentException
- if the source Observable emits more than one itempublic final Observable<T> singleOrDefault(T defaultValue,Func1<? superT,java.lang.Boolean> predicate)
IllegalArgumentException
.Observable
in an unbounded manner (i.e., without applying backpressure).singleOrDefault
does not operate by default on a particularScheduler
.defaultValue
- a default item to emit if the source Observable emits no matching itemspredicate
- a predicate function to evaluate items emitted by the source Observablejava.lang.IllegalArgumentException
- if the source Observable emits more than one item that matches the predicatepublic final Observable<T> skip(int count)
count
items emitted by the source Observable and emits the remainder.Observable
's backpressure behavior.skip
does not operate by default on a particularScheduler
.count
- the number of items to skipcount
items that the source Observable emitspublic final Observable<T> skip(long time, java.util.concurrent.TimeUnit unit)
Observable
in an unbounded manner (i.e., no backpressure applied to it).skip
operates by default on thecomputation
Scheduler
.time
- the length of the time window to skipunit
- the time unit oftime
time
elapses and the emits the remainderpublic final Observable<T> skip(long time, java.util.concurrent.TimeUnit unit,Scheduler scheduler)
Scheduler
elapses.Observable
in an unbounded manner (i.e., no backpressure applied to it).Scheduler
this operator will usetime
- the length of the time window to skipunit
- the time unit oftime
scheduler
- theScheduler
on which the timed wait happenstime
andscheduler
elapses, and then emits the remainderpublic final Observable<T> skipLast(int count)
This Observer accumulates a queue long enough to store the firstcount
items. As more items are received, items are taken from the front of the queue and emitted by the returned Observable. This causes such items to be delayed.
Observable
's backpressure behavior.skipLast
does not operate by default on a particularScheduler
.count
- number of items to drop from the end of the source sequencejava.lang.IndexOutOfBoundsException
- ifcount
is less than zeropublic final Observable<T> skipLast(long time, java.util.concurrent.TimeUnit unit)
Note: this action will cache the latest items arriving in the specified time window.
Observable
in an unbounded manner (i.e., no backpressure applied to it).skipLast
operates by default on thecomputation
Scheduler
.time
- the length of the time windowunit
- the time unit oftime
time
public final Observable<T> skipLast(long time, java.util.concurrent.TimeUnit unit,Scheduler scheduler)
Note: this action will cache the latest items arriving in the specified time window.
Observable
in an unbounded manner (i.e., no backpressure applied to it).Scheduler
this operator will usetime
- the length of the time windowunit
- the time unit oftime
scheduler
- the scheduler used as the time sourcetime
andscheduler
public final <U> Observable<T> skipUntil(Observable<U> other)
Observable
's backpressure behavior.skipUntil
does not operate by default on a particularScheduler
.U
- the element type of the other Observableother
- the second Observable that has to emit an item before the source Observable's elements begin to be mirrored by the resulting Observablepublic final Observable<T> skipWhile(Func1<? superT,java.lang.Boolean> predicate)
Observable
's backpressure behavior.skipWhile
does not operate by default on a particularScheduler
.predicate
- a function to test each item emitted from the source Observablepublic final Observable<T> startWith(Observable<T> values)
Observable
before it begins to emit items emitted by the source Observable.other
Observable
s are expected to honor backpressure as well. If any of then violates this rule, itmay throw anIllegalStateException
when the sourceObservable
completes.startWith
does not operate by default on a particularScheduler
.values
- an Observable that contains the items you want the modified Observable to emit firstObservable
and then emits the items emitted by the source Observablepublic final Observable<T> startWith(java.lang.Iterable<T> values)
Iterable
before it begins to emit items emitted by the source Observable.Observable
is expected to honor backpressure as well. If it violates this rule, itmay throw anIllegalStateException
when the sourceObservable
completes.startWith
does not operate by default on a particularScheduler
.values
- an Iterable that contains the items you want the modified Observable to emit firstIterable
and then emits the items emitted by the source Observablepublic final Observable<T> startWith(T t1)
Observable
is expected to honor backpressure as well. If it violates this rule, itmay throw anIllegalStateException
when the sourceObservable
completes.startWith
does not operate by default on a particularScheduler
.t1
- the item to emitpublic final Observable<T> startWith(T t1,T t2)
Observable
is expected to honor backpressure as well. If it violates this rule, itmay throw anIllegalStateException
when the sourceObservable
completes.startWith
does not operate by default on a particularScheduler
.t1
- the first item to emitt2
- the second item to emitpublic final Observable<T> startWith(T t1,T t2,T t3)
Observable
is expected to honor backpressure as well. If it violates this rule, itmay throw anIllegalStateException
when the sourceObservable
completes.startWith
does not operate by default on a particularScheduler
.t1
- the first item to emitt2
- the second item to emitt3
- the third item to emitpublic final Observable<T> startWith(T t1,T t2,T t3,T t4)
Observable
is expected to honor backpressure as well. If it violates this rule, itmay throw anIllegalStateException
when the sourceObservable
completes.startWith
does not operate by default on a particularScheduler
.t1
- the first item to emitt2
- the second item to emitt3
- the third item to emitt4
- the fourth item to emitpublic final Observable<T> startWith(T t1,T t2,T t3,T t4,T t5)
Observable
is expected to honor backpressure as well. If it violates this rule, itmay throw anIllegalStateException
when the sourceObservable
completes.startWith
does not operate by default on a particularScheduler
.t1
- the first item to emitt2
- the second item to emitt3
- the third item to emitt4
- the fourth item to emitt5
- the fifth item to emitpublic final Observable<T> startWith(T t1,T t2,T t3,T t4,T t5,T t6)
Observable
is expected to honor backpressure as well. If it violates this rule, itmay throw anIllegalStateException
when the sourceObservable
completes.startWith
does not operate by default on a particularScheduler
.t1
- the first item to emitt2
- the second item to emitt3
- the third item to emitt4
- the fourth item to emitt5
- the fifth item to emitt6
- the sixth item to emitpublic final Observable<T> startWith(T t1,T t2,T t3,T t4,T t5,T t6,T t7)
Observable
is expected to honor backpressure as well. If it violates this rule, itmay throw anIllegalStateException
when the sourceObservable
completes.startWith
does not operate by default on a particularScheduler
.t1
- the first item to emitt2
- the second item to emitt3
- the third item to emitt4
- the fourth item to emitt5
- the fifth item to emitt6
- the sixth item to emitt7
- the seventh item to emitpublic final Observable<T> startWith(T t1,T t2,T t3,T t4,T t5,T t6,T t7,T t8)
Observable
is expected to honor backpressure as well. If it violates this rule, itmay throw anIllegalStateException
when the sourceObservable
completes.startWith
does not operate by default on a particularScheduler
.t1
- the first item to emitt2
- the second item to emitt3
- the third item to emitt4
- the fourth item to emitt5
- the fifth item to emitt6
- the sixth item to emitt7
- the seventh item to emitt8
- the eighth item to emitpublic final Observable<T> startWith(T t1,T t2,T t3,T t4,T t5,T t6,T t7,T t8,T t9)
Observable
is expected to honor backpressure as well. If it violates this rule, itmay throw anIllegalStateException
when the sourceObservable
completes.startWith
does not operate by default on a particularScheduler
.t1
- the first item to emitt2
- the second item to emitt3
- the third item to emitt4
- the fourth item to emitt5
- the fifth item to emitt6
- the sixth item to emitt7
- the seventh item to emitt8
- the eighth item to emitt9
- the ninth item to emitpublic final Subscription subscribe()
onNext
andonCompleted
emissions. If anonError
emission arrives thenOnErrorNotImplementedException
is thrown.Observable
in an unbounded manner (i.e., no backpressure is applied to it).subscribe
does not operate by default on a particularScheduler
.Subscription
reference with which theObserver
can stop receiving items before the Observable has finished sending themOnErrorNotImplementedException
- if the Observable tries to callonError
public final Subscription subscribe(Action1<? superT> onNext)
Observable
in an unbounded manner (i.e., no backpressure is applied to it).subscribe
does not operate by default on a particularScheduler
.onNext
- theAction1<T>
you have designed to accept emissions from the ObservableSubscription
reference with which theObserver
can stop receiving items before the Observable has finished sending themjava.lang.IllegalArgumentException
- ifonNext
is nullOnErrorNotImplementedException
- if the Observable callsonError
public final Subscription subscribe(Action1<? superT> onNext,Action1<java.lang.Throwable> onError)
Observable
in an unbounded manner (i.e., no backpressure is applied to it).subscribe
does not operate by default on a particularScheduler
.onNext
- theAction1<T>
you have designed to accept emissions from the ObservableonError
- theAction1<Throwable>
you have designed to accept any error notification from the ObservableSubscription
reference with which theObserver
can stop receiving items before the Observable has finished sending themjava.lang.IllegalArgumentException
- ifonNext
is null, or ifonError
is nullpublic final Subscription subscribe(Action1<? superT> onNext,Action1<java.lang.Throwable> onError,Action0 onCompleted)
Observable
in an unbounded manner (i.e., no backpressure is applied to it).subscribe
does not operate by default on a particularScheduler
.onNext
- theAction1<T>
you have designed to accept emissions from the ObservableonError
- theAction1<Throwable>
you have designed to accept any error notification from the ObservableonCompleted
- theAction0
you have designed to accept a completion notification from the ObservableSubscription
reference with which theObserver
can stop receiving items before the Observable has finished sending themjava.lang.IllegalArgumentException
- ifonNext
is null, or ifonError
is null, or ifonComplete
is nullpublic final Subscription subscribe(Observer<? superT> observer)
Observable
in an unbounded manner (i.e., no backpressure is applied to it).subscribe
does not operate by default on a particularScheduler
.observer
- the Observer that will handle emissions and notifications from the ObservableSubscription
reference with which theObserver
can stop receiving items before the Observable has completedpublic final Subscription unsafeSubscribe(Subscriber<? superT> subscriber)
Observable.OnSubscribe
function without any contract protection, error handling, unsubscribe, or execution hooks. Use this only for implementing anObservable.Operator
that requires nested subscriptions. For other purposes, usesubscribe(Subscriber)
which ensuresthe Observable contract and other functionality.
Observable
's backpressure behavior.unsafeSubscribe
does not operate by default on a particularScheduler
.subscriber
- the Subscriber that will handle emissions and notifications from the ObservableSubscription
reference with which theSubscriber
can stop receiving items before the Observable has completedpublic final Subscription subscribe(Subscriber<? superT> subscriber)
A typical implementation ofsubscribe
does the following:
List<T>
object.Subscription
interface. This enables Subscribers to unsubscribe, that is, to stop receiving items and notifications before the Observable completes, which also invokes the Subscriber'sonCompleted
method. AnObservable<T>
instance is responsible for accepting all subscriptions and notifying all Subscribers. Unless the documentation for a particularObservable<T>
implementation indicates otherwise, Subscriber should make no assumptions about the order in which multiple Subscribers will receive their notifications.
For more information see theReactiveX documentation.
Observable
's backpressure behavior.subscribe
does not operate by default on a particularScheduler
.subscriber
- theSubscriber
that will handle emissions and notifications from the ObservableSubscription
reference with which Subscribers that areObserver
s can unsubscribe from the Observablejava.lang.IllegalStateException
- ifsubscribe
is unable to obtain anOnSubscribe<>
functionjava.lang.IllegalArgumentException
- if theSubscriber
provided as the argument tosubscribe
isnull
OnErrorNotImplementedException
- if theSubscriber
'sonError
method is nulljava.lang.RuntimeException
- if theSubscriber
'sonError
method itself threw aThrowable
public final Observable<T> subscribeOn(Scheduler scheduler)
Scheduler
. If there is acreate(Action1, rx.Emitter.BackpressureMode)
type source up in the chain, it is recommended to usesubscribeOn(scheduler, false)
instead to avoid same-pool deadlock because requests pile up behind a eager/blocking emitter.
Observable
's backpressure behavior. However, the upstream is requested from the given scheduler thread.Scheduler
this operator will usescheduler
- theScheduler
to perform subscription actions onScheduler
observeOn(rx.Scheduler)
,subscribeOn(Scheduler, boolean)
public final Observable<T> subscribeOn(Scheduler scheduler, boolean requestOn)
Scheduler
and optionally reroutes requests from other threads to the sameScheduler
thread. If there is acreate(Action1, rx.Emitter.BackpressureMode)
type source up in the chain, it is recommended to haverequestOn
false to avoid same-pool deadlock because requests pile up behind a eager/blocking emitter.
Observable
's backpressure behavior. However, the upstream is requested from the given scheduler if requestOn is true.Scheduler
this operator will useHistory: 1.2.7 - experimental
scheduler
- theScheduler
to perform subscription actions onrequestOn
- if true, requests are rerouted to the given Scheduler as well (strong pipelining) if false, requests coming from any thread are simply forwarded to the upstream on the same thread (weak pipelining)Scheduler
observeOn(rx.Scheduler)
,subscribeOn(Scheduler)
public final <R> Observable<R> switchMap(Func1<? superT,? extendsObservable<? extends R>> func)
The resulting Observable completes if both the upstream Observable and the last inner Observable, if any, complete. If the upstream Observable signals an onError, the inner Observable is unsubscribed and the error delivered in-sequence.
Observable
is consumed in an unbounded manner (i.e., without backpressure) and the innerObservable
s are expected to honor backpressure but it is not enforced; the operator won't signal aMissingBackpressureException
but the violationmay lead toOutOfMemoryError
due to internal buffer bloat.switchMap
does not operate by default on a particularScheduler
.R
- the element type of the inner Observables and the outputfunc
- a function that, when applied to an item emitted by the source Observable, returns an Observablefunc
to the most recently emitted item emitted by the source Observablepublic final <R> Observable<R> switchMapDelayError(Func1<? superT,? extendsObservable<? extends R>> func)
The resulting Observable completes if both the upstream Observable and the last inner Observable, if any, complete. If the upstream Observable signals an onError, the termination of the last inner Observable will emit that error as is or wrapped into a CompositeException along with the other possible errors the former inner Observables signalled.
Observable
is consumed in an unbounded manner (i.e., without backpressure) and the innerObservable
s are expected to honor backpressure but it is not enforced; the operator won't signal aMissingBackpressureException
but the violationmay lead toOutOfMemoryError
due to internal buffer bloat.switchMap
does not operate by default on a particularScheduler
.R
- the element type of the inner Observables and the outputfunc
- a function that, when applied to an item emitted by the source Observable, returns an Observablefunc
to the most recently emitted item emitted by the source Observablepublic final Observable<T> take(int count)
count
items emitted by the source Observable. If the source emits fewer thancount
items then all of its items are emitted. This method returns an Observable that will invoke a subscribingObserver
'sonNext
function a maximum ofcount
times before invokingonCompleted
.
Observable
's backpressure behavior in case the first request is smaller than thecount
. Otherwise, the sourceObservable
is consumed in an unbounded manner (i.e., without applying backpressure to it).take
does not operate by default on a particularScheduler
.count
- the maximum number of items to emitcount
items emitted by the source Observable, or all of the items from the source Observable if that Observable emits fewer thancount
itemspublic final Observable<T> take(long time, java.util.concurrent.TimeUnit unit)
If time runs out before theObservable
completes normally, theonComplete
event will be signaled on the defaultcomputation
Scheduler
.
Observable
's backpressure behavior.take
operates by default on thecomputation
Scheduler
.time
- the length of the time windowunit
- the time unit oftime
public final Observable<T> take(long time, java.util.concurrent.TimeUnit unit,Scheduler scheduler)
If time runs out before theObservable
completes normally, theonComplete
event will be signaled on the providedScheduler
.
Observable
's backpressure behavior.Scheduler
this operator will usetime
- the length of the time windowunit
- the time unit oftime
scheduler
- the Scheduler used for time sourcepublic final Observable<T> takeFirst(Func1<? superT,java.lang.Boolean> predicate)
Observable
's backpressure behavior.takeFirst
does not operate by default on a particularScheduler
.predicate
- the condition any item emitted by the source Observable has to satisfypublic final Observable<T> takeLast(int count)
count
items emitted by the source Observable. If the source emits fewer thancount
items then all of its items are emitted.count
is non-zero; ignores backpressure if thecount
is zero as it doesn't signal any values.takeLast
does not operate by default on a particularScheduler
.count
- the maximum number of items to emit from the end of the sequence of items emitted by the source Observablecount
items emitted by the source Observablejava.lang.IndexOutOfBoundsException
- ifcount
is less than zeropublic final Observable<T> takeLast(int count, long time, java.util.concurrent.TimeUnit unit)
Observable
in an unbounded manner (i.e., no backpressure is applied to it).takeLast
operates by default on thecomputation
Scheduler
.count
- the maximum number of items to emittime
- the length of the time windowunit
- the time unit oftime
count
items from the source Observable that were emitted in a specified window of time before the Observable completedpublic final Observable<T> takeLast(int count, long time, java.util.concurrent.TimeUnit unit,Scheduler scheduler)
Observable
in an unbounded manner (i.e., no backpressure is applied to it).Scheduler
this operator will usecount
- the maximum number of items to emittime
- the length of the time windowunit
- the time unit oftime
scheduler
- theScheduler
that provides the timestamps for the observed itemscount
items from the source Observable that were emitted in a specified window of time before the Observable completed, where the timing information is provided by the givenscheduler
java.lang.IndexOutOfBoundsException
- ifcount
is less than zeropublic final Observable<T> takeLast(long time, java.util.concurrent.TimeUnit unit)
Observable
in an unbounded manner (i.e., no backpressure is applied to it) but note that thismay lead toOutOfMemoryError
due to internal buffer bloat. Consider usingtakeLast(int, long, TimeUnit)
in this case.takeLast
operates by default on thecomputation
Scheduler
.time
- the length of the time windowunit
- the time unit oftime
time
public final Observable<T> takeLast(long time, java.util.concurrent.TimeUnit unit,Scheduler scheduler)
Observable
in an unbounded manner (i.e., no backpressure is applied to it) but note that thismay lead toOutOfMemoryError
due to internal buffer bloat. Consider usingtakeLast(int, long, TimeUnit, Scheduler)
in this case.Scheduler
this operator will usetime
- the length of the time windowunit
- the time unit oftime
scheduler
- the Scheduler that provides the timestamps for the Observed itemstime
, where the timing information is provided byscheduler
public final Observable<java.util.List<T>> takeLastBuffer(int count)
count
elements emitted by the source Observable. If the source emits fewer thancount
items then the emitted List will contain all of the source emissions.Observable
in an unbounded manner (i.e., without applying backpressure to it).takeLastBuffer
does not operate by default on a particularScheduler
.count
- the maximum number of items to emit in the listcount
elements emitted by the source Observablepublic final Observable<java.util.List<T>> takeLastBuffer(int count, long time, java.util.concurrent.TimeUnit unit)
count
items from the source Observable that were emitted during a specified window of time before the source Observable completed.Observable
in an unbounded manner (i.e., without applying backpressure to it).takeLastBuffer
operates by default on thecomputation
Scheduler
.count
- the maximum number of items to emittime
- the length of the time windowunit
- the time unit oftime
count
items emitted by the source Observable during the time window defined bytime
before the source Observable completedpublic final Observable<java.util.List<T>> takeLastBuffer(int count, long time, java.util.concurrent.TimeUnit unit,Scheduler scheduler)
count
items from the source Observable that were emitted during a specified window of time (on a specified Scheduler) before the source Observable completed.Observable
in an unbounded manner (i.e., without applying backpressure to it).Scheduler
this operator will usecount
- the maximum number of items to emittime
- the length of the time windowunit
- the time unit oftime
scheduler
- the Scheduler that provides the timestamps for the observed itemscount
items emitted by the source Observable during the time window defined bytime
before the source Observable completedpublic final Observable<java.util.List<T>> takeLastBuffer(long time, java.util.concurrent.TimeUnit unit)
Observable
in an unbounded manner (i.e., without applying backpressure to it).takeLastBuffer
operates by default on thecomputation
Scheduler
.time
- the length of the time windowunit
- the time unit oftime
time
before the source Observable completedpublic final Observable<java.util.List<T>> takeLastBuffer(long time, java.util.concurrent.TimeUnit unit,Scheduler scheduler)
Observable
in an unbounded manner (i.e., without applying backpressure to it).Scheduler
this operator will usetime
- the length of the time windowunit
- the time unit oftime
scheduler
- the Scheduler that provides the timestamps for the observed itemstime
before the source Observable completed, where the timing information is provided byscheduler
public final <E> Observable<T> takeUntil(Observable<? extends E> other)
Observable
's backpressure behavior.takeUntil
does not operate by default on a particularScheduler
.E
- the type of items emitted byother
other
- the Observable whose first emitted item will causetakeUntil
to stop emitting items from the source Observableother
emits its first itempublic final Observable<T> takeWhile(Func1<? superT,java.lang.Boolean> predicate)
Observable
's backpressure behavior.takeWhile
does not operate by default on a particularScheduler
.predicate
- a function that evaluates an item emitted by the source Observable and returns a Booleanpredicate
, then completestakeUntil(Func1)
public final Observable<T> takeUntil(Func1<? superT,java.lang.Boolean> stopPredicate)
The difference between this operator andtakeWhile(Func1)
is that here, the condition is evaluatedafter the item is emitted.
takeWhile
does not operate by default on a particularScheduler
.stopPredicate
- a function that evaluates an item emitted by the source Observable and returns a BooleantakeWhile(Func1)
public final Observable<T> throttleFirst(long windowDuration, java.util.concurrent.TimeUnit unit)
This differs fromthrottleLast(long, java.util.concurrent.TimeUnit)
in that this only tracks passage of time whereasthrottleLast(long, java.util.concurrent.TimeUnit)
ticks at scheduled intervals.
throttleFirst
operates by default on thecomputation
Scheduler
.windowDuration
- time to wait before emitting another item after emitting the last itemunit
- the unit of time ofwindowDuration
public final Observable<T> throttleFirst(long skipDuration, java.util.concurrent.TimeUnit unit,Scheduler scheduler)
This differs fromthrottleLast(long, java.util.concurrent.TimeUnit)
in that this only tracks passage of time whereasthrottleLast(long, java.util.concurrent.TimeUnit)
ticks at scheduled intervals.
Scheduler
this operator will useskipDuration
- time to wait before emitting another item after emitting the last itemunit
- the unit of time ofskipDuration
scheduler
- theScheduler
to use internally to manage the timers that handle timeout for each eventpublic final Observable<T> throttleLast(long intervalDuration, java.util.concurrent.TimeUnit unit)
This differs fromthrottleFirst(long, java.util.concurrent.TimeUnit)
in that this ticks along at a scheduled interval whereasthrottleFirst(long, java.util.concurrent.TimeUnit)
does not tick, it just tracks passage of time.
throttleLast
operates by default on thecomputation
Scheduler
.intervalDuration
- duration of windows within which the last item emitted by the source Observable will be emittedunit
- the unit of time ofintervalDuration
sample(long, TimeUnit)
public final Observable<T> throttleLast(long intervalDuration, java.util.concurrent.TimeUnit unit,Scheduler scheduler)
This differs fromthrottleFirst(long, java.util.concurrent.TimeUnit)
in that this ticks along at a scheduled interval whereasthrottleFirst(long, java.util.concurrent.TimeUnit)
does not tick, it just tracks passage of time.
Scheduler
this operator will useintervalDuration
- duration of windows within which the last item emitted by the source Observable will be emittedunit
- the unit of time ofintervalDuration
scheduler
- theScheduler
to use internally to manage the timers that handle timeout for each eventsample(long, TimeUnit, Scheduler)
public final Observable<T> throttleWithTimeout(long timeout, java.util.concurrent.TimeUnit unit)
Note: If the source Observable keeps emitting items more frequently than the length of the time window then no items will be emitted by the resulting Observable.
Information on debounce vs throttle:
throttleWithTimeout
operates by default on thecomputation
Scheduler
.timeout
- the length of the window of time that must pass after the emission of an item from the source Observable in which that Observable emits no items in order for the item to be emitted by the resulting Observableunit
- theTimeUnit
oftimeout
debounce(long, TimeUnit)
public final Observable<T> throttleWithTimeout(long timeout, java.util.concurrent.TimeUnit unit,Scheduler scheduler)
Note: If the source Observable keeps emitting items more frequently than the length of the time window then no items will be emitted by the resulting Observable.
Information on debounce vs throttle:
Scheduler
this operator will usetimeout
- the length of the window of time that must pass after the emission of an item from the source Observable in which that Observable emits no items in order for the item to be emitted by the resulting Observableunit
- theTimeUnit
oftimeout
scheduler
- theScheduler
to use internally to manage the timers that handle the timeout for each itemdebounce(long, TimeUnit, Scheduler)
public final Observable<TimeInterval<T>> timeInterval()
Observable
's backpressure behavior.timeInterval
does not operate on any particular scheduler but uses the current time from thecomputation
Scheduler
.public final Observable<TimeInterval<T>> timeInterval(Scheduler scheduler)
Observable
's backpressure behavior.Scheduler
.scheduler
- theScheduler
used to compute time intervalspublic final <U,V> Observable<T> timeout(Func0<? extendsObservable<U>> firstTimeoutSelector,Func1<? superT,? extendsObservable<V>> timeoutSelector)
TimeoutException
if either the first item emitted by the source Observable or any subsequent item doesn't arrive within time windows defined by other Observables.Observable
s are expected to honor backpressure as well. If any of then violates this rule, itmay throw anIllegalStateException
when theObservable
completes.timeout
operates by default on theimmediate
Scheduler
.U
- the first timeout value type (ignored)V
- the subsequent timeout value type (ignored)firstTimeoutSelector
- a function that returns an Observable that determines the timeout window for the first source itemtimeoutSelector
- a function that returns an Observable for each item emitted by the source Observable and that determines the timeout window in which the subsequent source item must arrive in order to continue the sequenceTimeoutException
if either the first item or any subsequent item doesn't arrive within the time windows specified by the timeout selectorspublic final <U,V> Observable<T> timeout(Func0<? extendsObservable<U>> firstTimeoutSelector,Func1<? superT,? extendsObservable<V>> timeoutSelector,Observable<? extendsT> other)
Observable
sources are expected to honor backpressure as well. If any of the sourceObservable
s violate this, itmay throw anIllegalStateException
when the sourceObservable
completes.timeout
operates by default on theimmediate
Scheduler
.U
- the first timeout value type (ignored)V
- the subsequent timeout value type (ignored)firstTimeoutSelector
- a function that returns an Observable which determines the timeout window for the first source itemtimeoutSelector
- a function that returns an Observable for each item emitted by the source Observable and that determines the timeout window in which the subsequent source item must arrive in order to continue the sequenceother
- the fallback Observable to switch to if the source Observable times outother
Observable if either the first item emitted by the source Observable or any subsequent item doesn't arrive within time windows defined by the timeout selectorsjava.lang.NullPointerException
- iftimeoutSelector
is nullpublic final <V> Observable<T> timeout(Func1<? superT,? extendsObservable<V>> timeoutSelector)
TimeoutException
if an item emitted by the source Observable doesn't arrive within a window of time after the emission of the previous item, where that period of time is measured by an Observable that is a function of the previous item.Note: The arrival of the first source item is never timed out.
Observable
sources are expected to honor backpressure as well. If any of the sourceObservable
s violate this, itmay throw anIllegalStateException
when the sourceObservable
completes.timeout
operates by default on theimmediate
Scheduler
.V
- the timeout value type (ignored)timeoutSelector
- a function that returns an observable for each item emitted by the source Observable and that determines the timeout window for the subsequent itemTimeoutException
if an item emitted by the source Observable takes longer to arrive than the time window defined by the selector for the previously emitted itempublic final <V> Observable<T> timeout(Func1<? superT,? extendsObservable<V>> timeoutSelector,Observable<? extendsT> other)
Note: The arrival of the first source item is never timed out.
Observable
sources are expected to honor backpressure as well. If any of the sourceObservable
s violate this, itmay throw anIllegalStateException
when the sourceObservable
completes.timeout
operates by default on theimmediate
Scheduler
.V
- the timeout value type (ignored)timeoutSelector
- a function that returns an Observable, for each item emitted by the source Observable, that determines the timeout window for the subsequent itemother
- the fallback Observable to switch to if the source Observable times outpublic final Observable<T> timeout(long timeout, java.util.concurrent.TimeUnit timeUnit)
TimeoutException
.Observable
's backpressure behavior.timeout
operates by default on thecomputation
Scheduler
.timeout
- maximum duration between emitted items before a timeout occurstimeUnit
- the unit of time that applies to thetimeout
argument.TimeoutException
in case of a timeoutpublic final Observable<T> timeout(long timeout, java.util.concurrent.TimeUnit timeUnit,Observable<? extendsT> other)
Observable
sources are expected to honor backpressure as well. If any of the sourceObservable
s violate this, itmay throw anIllegalStateException
when the sourceObservable
completes.timeout
operates by default on thecomputation
Scheduler
.timeout
- maximum duration between items before a timeout occurstimeUnit
- the unit of time that applies to thetimeout
argumentother
- the fallback Observable to use in case of a timeoutpublic final Observable<T> timeout(long timeout, java.util.concurrent.TimeUnit timeUnit,Observable<? extendsT> other,Scheduler scheduler)
Observable
sources are expected to honor backpressure as well. If any of the sourceObservable
s violate this, itmay throw anIllegalStateException
when the sourceObservable
completes.Scheduler
this operator will usetimeout
- maximum duration between items before a timeout occurstimeUnit
- the unit of time that applies to thetimeout
argumentother
- the Observable to use as the fallback in case of a timeoutscheduler
- theScheduler
to run the timeout timers onpublic final Observable<T> timeout(long timeout, java.util.concurrent.TimeUnit timeUnit,Scheduler scheduler)
TimeoutException
.Observable
's backpressure behavior.Scheduler
this operator will usetimeout
- maximum duration between items before a timeout occurstimeUnit
- the unit of time that applies to thetimeout
argumentscheduler
- the Scheduler to run the timeout timers onTimeoutException
in case of a timeoutpublic final Observable<Timestamped<T>> timestamp()
Timestamped
object.Observable
's backpressure behavior.timestamp
does not operate on any particular scheduler but uses the current time from thecomputation
Scheduler
.public final Observable<Timestamped<T>> timestamp(Scheduler scheduler)
Timestamped
object whose timestamps are provided by a specified Scheduler.Observable
's backpressure behavior.Scheduler
.scheduler
- theScheduler
to use as a time sourcescheduler
public final BlockingObservable<T> toBlocking()
BlockingObservable
(an Observable with blocking operators).Observable
's backpressure behavior.toBlocking
does not operate by default on a particularScheduler
.BlockingObservable
version of this Observablepublic final Observable<java.util.List<T>> toList()
Normally, an Observable that returns multiple items will do so by invoking itsObserver
'sonNext
method for each such item. You can change this behavior, instructing the Observable to compose a list of all of these items and then to invoke the Observer'sonNext
function once, passing it the entire list, by calling the Observable'stoList
method prior to calling itssubscribe()
method.
Be careful not to use this operator on Observables that emit infinite or very large numbers of items, as you do not have the option to unsubscribe.
Observable
in an unbounded manner (i.e., without applying backpressure to it).toList
does not operate by default on a particularScheduler
.public final <K> Observable<java.util.Map<K,T>> toMap(Func1<? superT,? extends K> keySelector)
keySelector
function.If more than one source item maps to the same key, the HashMap will contain the latest of those items.
Observable
in an unbounded manner (i.e., without applying backpressure to it).toMap
does not operate by default on a particularScheduler
.K
- the key type of the MapkeySelector
- the function that extracts the key from a source item to be used in the HashMappublic final <K,V> Observable<java.util.Map<K,V>> toMap(Func1<? superT,? extends K> keySelector,Func1<? superT,? extends V> valueSelector)
keySelector
function.If more than one source item maps to the same key, the HashMap will contain a single entry that corresponds to the latest of those items.
Observable
in an unbounded manner (i.e., without applying backpressure to it).toMap
does not operate by default on a particularScheduler
.K
- the key type of the MapV
- the value type of the MapkeySelector
- the function that extracts the key from a source item to be used in the HashMapvalueSelector
- the function that extracts the value from a source item to be used in the HashMappublic final <K,V> Observable<java.util.Map<K,V>> toMap(Func1<? superT,? extends K> keySelector,Func1<? superT,? extends V> valueSelector,Func0<? extends java.util.Map<K,V>> mapFactory)
mapFactory
function, that contains keys and values extracted from the items emitted by the source Observable.Observable
in an unbounded manner (i.e., without applying backpressure to it).toMap
does not operate by default on a particularScheduler
.K
- the key type of the MapV
- the value type of the MapkeySelector
- the function that extracts the key from a source item to be used in the MapvalueSelector
- the function that extracts the value from the source items to be used as value in the MapmapFactory
- the function that returns a Map instance to be usedpublic final <K> Observable<java.util.Map<K,java.util.Collection<T>>> toMultimap(Func1<? superT,? extends K> keySelector)
keySelector
function.toMultiMap
does not operate by default on a particularScheduler
.K
- the key type of the MapkeySelector
- the function that extracts the key from the source items to be used as key in the HashMappublic final <K,V> Observable<java.util.Map<K,java.util.Collection<V>>> toMultimap(Func1<? superT,? extends K> keySelector,Func1<? superT,? extends V> valueSelector)
valueSelector
function from items emitted by the source Observable, keyed by a specifiedkeySelector
function.Observable
in an unbounded manner (i.e., without applying backpressure to it).toMultiMap
does not operate by default on a particularScheduler
.K
- the key type of the MapV
- the value type of the MapkeySelector
- the function that extracts a key from the source items to be used as key in the HashMapvalueSelector
- the function that extracts a value from the source items to be used as value in the HashMappublic final <K,V> Observable<java.util.Map<K,java.util.Collection<V>>> toMultimap(Func1<? superT,? extends K> keySelector,Func1<? superT,? extends V> valueSelector,Func0<? extends java.util.Map<K,java.util.Collection<V>>> mapFactory)
mapFactory
function, that contains an ArrayList of values, extracted by a specifiedvalueSelector
function from items emitted by the source Observable and keyed by thekeySelector
function.Observable
in an unbounded manner (i.e., without applying backpressure to it).toMultiMap
does not operate by default on a particularScheduler
.K
- the key type of the MapV
- the value type of the MapkeySelector
- the function that extracts a key from the source items to be used as the key in the MapvalueSelector
- the function that extracts a value from the source items to be used as the value in the MapmapFactory
- the function that returns a Map instance to be usedpublic final <K,V> Observable<java.util.Map<K,java.util.Collection<V>>> toMultimap(Func1<? superT,? extends K> keySelector,Func1<? superT,? extends V> valueSelector,Func0<? extends java.util.Map<K,java.util.Collection<V>>> mapFactory,Func1<? super K,? extends java.util.Collection<V>> collectionFactory)
mapFactory
function, that contains a custom collection of values, extracted by a specifiedvalueSelector
function from items emitted by the source Observable, and keyed by thekeySelector
function.Observable
in an unbounded manner (i.e., without applying backpressure to it).toMultiMap
does not operate by default on a particularScheduler
.K
- the key type of the MapV
- the value type of the MapkeySelector
- the function that extracts a key from the source items to be used as the key in the MapvalueSelector
- the function that extracts a value from the source items to be used as the value in the MapmapFactory
- the function that returns a Map instance to be usedcollectionFactory
- the function that returns a Collection instance for a particular key to be used in the Mappublic final Observable<java.util.List<T>> toSortedList()
Comparable
with respect to all other items in the sequence.Observable
in an unbounded manner (i.e., without applying backpressure to it).toSortedList
does not operate by default on a particularScheduler
.java.lang.ClassCastException
- if any item emitted by the Observable does not implementComparable
with respect to all other items emitted by the Observablepublic final Observable<java.util.List<T>> toSortedList(Func2<? superT,? superT,java.lang.Integer> sortFunction)
Observable
in an unbounded manner (i.e., without applying backpressure to it).toSortedList
does not operate by default on a particularScheduler
.sortFunction
- a function that compares two items emitted by the source Observable and returns an Integer that indicates their sort orderpublic final Observable<java.util.List<T>> toSortedList(int initialCapacity)
Comparable
with respect to all other items in the sequence.Observable
in an unbounded manner (i.e., without applying backpressure to it).toSortedList
does not operate by default on a particularScheduler
.initialCapacity
- the initial capacity of the ArrayList used to accumulate items before sortingjava.lang.ClassCastException
- if any item emitted by the Observable does not implementComparable
with respect to all other items emitted by the Observablepublic final Observable<java.util.List<T>> toSortedList(Func2<? superT,? superT,java.lang.Integer> sortFunction, int initialCapacity)
Observable
in an unbounded manner (i.e., without applying backpressure to it).toSortedList
does not operate by default on a particularScheduler
.sortFunction
- a function that compares two items emitted by the source Observable and returns an Integer that indicates their sort orderinitialCapacity
- the initial capacity of the ArrayList used to accumulate items before sortingpublic final Observable<T> sorted()
Comparable
with respect to all other items in the sequence.Note that callingsorted
with long, non-terminating or infinite sources might causeOutOfMemoryError
Observable
in an unbounded manner (i.e., without applying backpressure to it).sorted
does not operate by default on a particularScheduler
.java.lang.ClassCastException
- if any item emitted by the Observable does not implementComparable
with respect to all other items emitted by the Observablepublic final Observable<T> sorted(Func2<? superT,? superT,java.lang.Integer> sortFunction)
Note that callingsorted
with long, non-terminating or infinite sources might causeOutOfMemoryError
Observable
in an unbounded manner (i.e., without applying backpressure to it).sorted
does not operate by default on a particularScheduler
.sortFunction
- a function that compares two items emitted by the source Observable and returns an Integer that indicates their sort orderpublic final Observable<T> unsubscribeOn(Scheduler scheduler)
Scheduler
.Observable
's backpressure behavior.Scheduler
this operator will usescheduler
- theScheduler
to perform unsubscription actions onScheduler
public final <U,R> Observable<R> withLatestFrom(Observable<? extends U> other,Func2<? superT,? super U,? extends R> resultSelector)
resultSelector
function only when the source Observable (this instance) emits an item.Scheduler
.U
- the element type of the other ObservableR
- the result type of the combinationother
- the other ObservableresultSelector
- the function to call when this Observable emits an item and the other Observable has already emitted an item, to generate the item to be emitted by the resulting ObservableresultSelector
function only when the source Observable sequence (this instance) emits an itempublic final <T1,T2,R> Observable<R> withLatestFrom(Observable<T1> o1,Observable<T2> o2,Func3<? superT,? super T1,? super T2,R> combiner)
Note that this operator doesn't emit anything until all other sources have produced at least one value. The resulting emission only happens when this Observable emits (and not when any of the other sources emit, unlike combineLatest). If a source doesn't produce any value and just completes, the sequence is completed immediately.
Observable
and the downstream Subscriber. The otherObservable
s are consumed in an unbounded manner.Scheduler
.T1
- the first other source's value typeT2
- the second other source's value typeR
- the result value typeo1
- the first other Observableo2
- the second other Observablecombiner
- the function called with an array of values from each participating observablepublic final <T1,T2,T3,R> Observable<R> withLatestFrom(Observable<T1> o1,Observable<T2> o2,Observable<T3> o3,Func4<? superT,? super T1,? super T2,? super T3,R> combiner)
Note that this operator doesn't emit anything until all other sources have produced at least one value. The resulting emission only happens when this Observable emits (and not when any of the other sources emit, unlike combineLatest). If a source doesn't produce any value and just completes, the sequence is completed immediately.
Observable
and the downstream Subscriber. The otherObservable
s are consumed in an unbounded manner.Scheduler
.T1
- the first other source's value typeT2
- the second other source's value typeT3
- the third other source's value typeR
- the result value typeo1
- the first other Observableo2
- the second other Observableo3
- the third other Observablecombiner
- the function called with an array of values from each participating observablepublic final <T1,T2,T3,T4,R> Observable<R> withLatestFrom(Observable<T1> o1,Observable<T2> o2,Observable<T3> o3,Observable<T4> o4,Func5<? superT,? super T1,? super T2,? super T3,? super T4,R> combiner)
Note that this operator doesn't emit anything until all other sources have produced at least one value. The resulting emission only happens when this Observable emits (and not when any of the other sources emit, unlike combineLatest). If a source doesn't produce any value and just completes, the sequence is completed immediately.
Observable
and the downstream Subscriber. The otherObservable
s are consumed in an unbounded manner.Scheduler
.T1
- the first other source's value typeT2
- the second other source's value typeT3
- the third other source's value typeT4
- the fourth other source's value typeR
- the result value typeo1
- the first other Observableo2
- the second other Observableo3
- the third other Observableo4
- the fourth other Observablecombiner
- the function called with an array of values from each participating observablepublic final <T1,T2,T3,T4,T5,R> Observable<R> withLatestFrom(Observable<T1> o1,Observable<T2> o2,Observable<T3> o3,Observable<T4> o4,Observable<T5> o5,Func6<? superT,? super T1,? super T2,? super T3,? super T4,? super T5,R> combiner)
Note that this operator doesn't emit anything until all other sources have produced at least one value. The resulting emission only happens when this Observable emits (and not when any of the other sources emit, unlike combineLatest). If a source doesn't produce any value and just completes, the sequence is completed immediately.
Observable
and the downstream Subscriber. The otherObservable
s are consumed in an unbounded manner.Scheduler
.T1
- the first other source's value typeT2
- the second other source's value typeT3
- the third other source's value typeT4
- the fourth other source's value typeT5
- the fifth other source's value typeR
- the result value typeo1
- the first other Observableo2
- the second other Observableo3
- the third other Observableo4
- the fourth other Observableo5
- the fifth other Observablecombiner
- the function called with an array of values from each participating observablepublic final <T1,T2,T3,T4,T5,T6,R> Observable<R> withLatestFrom(Observable<T1> o1,Observable<T2> o2,Observable<T3> o3,Observable<T4> o4,Observable<T5> o5,Observable<T6> o6,Func7<? superT,? super T1,? super T2,? super T3,? super T4,? super T5,? super T6,R> combiner)
Note that this operator doesn't emit anything until all other sources have produced at least one value. The resulting emission only happens when this Observable emits (and not when any of the other sources emit, unlike combineLatest). If a source doesn't produce any value and just completes, the sequence is completed immediately.
Observable
and the downstream Subscriber. The otherObservable
s are consumed in an unbounded manner.Scheduler
.T1
- the first other source's value typeT2
- the second other source's value typeT3
- the third other source's value typeT4
- the fourth other source's value typeT5
- the fifth other source's value typeT6
- the sixth other source's value typeR
- the result value typeo1
- the first other Observableo2
- the second other Observableo3
- the third other Observableo4
- the fourth other Observableo5
- the fifth other Observableo6
- the sixth other Observablecombiner
- the function called with an array of values from each participating observablepublic final <T1,T2,T3,T4,T5,T6,T7,R> Observable<R> withLatestFrom(Observable<T1> o1,Observable<T2> o2,Observable<T3> o3,Observable<T4> o4,Observable<T5> o5,Observable<T6> o6,Observable<T7> o7,Func8<? superT,? super T1,? super T2,? super T3,? super T4,? super T5,? super T6,? super T7,R> combiner)
Note that this operator doesn't emit anything until all other sources have produced at least one value. The resulting emission only happens when this Observable emits (and not when any of the other sources emit, unlike combineLatest). If a source doesn't produce any value and just completes, the sequence is completed immediately.
Observable
and the downstream Subscriber. The otherObservable
s are consumed in an unbounded manner.Scheduler
.T1
- the first other source's value typeT2
- the second other source's value typeT3
- the third other source's value typeT4
- the fourth other source's value typeT5
- the fifth other source's value typeT6
- the sixth other source's value typeT7
- the seventh other source's value typeR
- the result value typeo1
- the first other Observableo2
- the second other Observableo3
- the third other Observableo4
- the fourth other Observableo5
- the fifth other Observableo6
- the sixth other Observableo7
- the seventh other Observablecombiner
- the function called with an array of values from each participating observablepublic final <T1,T2,T3,T4,T5,T6,T7,T8,R> Observable<R> withLatestFrom(Observable<T1> o1,Observable<T2> o2,Observable<T3> o3,Observable<T4> o4,Observable<T5> o5,Observable<T6> o6,Observable<T7> o7,Observable<T8> o8,Func9<? superT,? super T1,? super T2,? super T3,? super T4,? super T5,? super T6,? super T7,? super T8,R> combiner)
Note that this operator doesn't emit anything until all other sources have produced at least one value. The resulting emission only happens when this Observable emits (and not when any of the other sources emit, unlike combineLatest). If a source doesn't produce any value and just completes, the sequence is completed immediately.
Observable
and the downstream Subscriber. The otherObservable
s are consumed in an unbounded manner.Scheduler
.T1
- the first other source's value typeT2
- the second other source's value typeT3
- the third other source's value typeT4
- the fourth other source's value typeT5
- the fifth other source's value typeT6
- the sixth other source's value typeT7
- the seventh other source's value typeT8
- the eighth other source's value typeR
- the result value typeo1
- the first other Observableo2
- the second other Observableo3
- the third other Observableo4
- the fourth other Observableo5
- the fifth other Observableo6
- the sixth other Observableo7
- the seventh other Observableo8
- the eighth other Observablecombiner
- the function called with an array of values from each participating observablepublic final <R> Observable<R> withLatestFrom(Observable<?>[] others,FuncN<R> combiner)
Note that this operator doesn't emit anything until all other sources have produced at least one value. The resulting emission only happens when this Observable emits (and not when any of the other sources emit, unlike combineLatest). If a source doesn't produce any value and just completes, the sequence is completed immediately.
Observable
and the downstream Subscriber. The otherObservable
s are consumed in an unbounded manner.Scheduler
.R
- the result value typeothers
- the array of other sourcescombiner
- the function called with an array of values from each participating observablepublic final <R> Observable<R> withLatestFrom(java.lang.Iterable<Observable<?>> others,FuncN<R> combiner)
Note that this operator doesn't emit anything until all other sources have produced at least one value. The resulting emission only happens when this Observable emits (and not when any of the other sources emit, unlike combineLatest). If a source doesn't produce any value and just completes, the sequence is completed immediately.
Observable
and the downstream Subscriber. The otherObservable
s are consumed in an unbounded manner.Scheduler
.R
- the result value typeothers
- the iterable of other sourcescombiner
- the function called with an array of values from each participating observablepublic final <TClosing> Observable<Observable<T>> window(Func0<? extendsObservable<? extends TClosing>> closingSelector)
closingSelector
emits an item.Observable
in an unbounded manner. The returnedObservable
doesn't support backpressure as it uses theclosingSelector
to control the creation of windows. The returned innerObservable
s honor backpressure but have an unbounded inner buffer thatmay lead toOutOfMemoryError
if left unconsumed.window
does not operate by default on a particularScheduler
.TClosing
- the element type of the boundary ObservableclosingSelector
- aFunc0
that returns anObservable
that governs the boundary between windows. When the sourceObservable
emits an item,window
emits the current window and begins a new one.closingSelector
emits an itempublic final Observable<Observable<T>> window(int count)
count
items. When the source Observable completes or encounters an error, the resulting Observable emits the current window and propagates the notification from the source Observable.count
elements.window
does not operate by default on a particularScheduler
.count
- the maximum size of each window before it should be emittedcount
items from the source Observablejava.lang.IllegalArgumentException
- if either count is non-positivepublic final Observable<Observable<T>> window(int count, int skip)
skip
items, each containing no more thancount
items. When the source Observable completes or encounters an error, the resulting Observable emits the current window and propagates the notification from the source Observable.count
elements.window
does not operate by default on a particularScheduler
.count
- the maximum size of each window before it should be emittedskip
- how many items need to be skipped before starting a new window. Note that ifskip
andcount
are equal this is the same operation aswindow(int)
.skip
items containing at mostcount
items from the source Observablejava.lang.IllegalArgumentException
- if either count or skip is non-positivepublic final Observable<Observable<T>> window(long timespan, long timeshift, java.util.concurrent.TimeUnit unit)
timeshift
argument. It emits each window after a fixed timespan, specified by thetimespan
argument. When the source Observable completes or Observable completes or encounters an error, the resulting Observable emits the current window and propagates the notification from the source Observable.Observable
in an unbounded manner. The returnedObservable
doesn't support backpressure as it uses time to control the creation of windows. The returned innerObservable
s honor backpressure but have an unbounded inner buffer thatmay lead toOutOfMemoryError
if left unconsumed.window
operates by default on thecomputation
Scheduler
.timespan
- the period of time each window collects items before it should be emittedtimeshift
- the period of time after which a new window will be createdunit
- the unit of time that applies to thetimespan
andtimeshift
argumentspublic final Observable<Observable<T>> window(long timespan, long timeshift, java.util.concurrent.TimeUnit unit,Scheduler scheduler)
timeshift
argument. It emits each window after a fixed timespan, specified by thetimespan
argument. When the source Observable completes or Observable completes or encounters an error, the resulting Observable emits the current window and propagates the notification from the source Observable.Observable
in an unbounded manner. The returnedObservable
doesn't support backpressure as it uses time to control the creation of windows. The returned innerObservable
s honor backpressure but have an unbounded inner buffer thatmay lead toOutOfMemoryError
if left unconsumed.Scheduler
this operator will usetimespan
- the period of time each window collects items before it should be emittedtimeshift
- the period of time after which a new window will be createdunit
- the unit of time that applies to thetimespan
andtimeshift
argumentsscheduler
- theScheduler
to use when determining the end and start of a windowpublic final Observable<Observable<T>> window(long timespan, long timeshift, java.util.concurrent.TimeUnit unit, int count,Scheduler scheduler)
timeshift
argument or a maximum size as specified by thecount
argument (whichever is reached first). It emits each window after a fixed timespan, specified by thetimespan
argument. When the source Observable completes or Observable completes or encounters an error, the resulting Observable emits the current window and propagates the notification from the source Observable.Observable
in an unbounded manner. The returnedObservable
doesn't support backpressure as it uses time to control the creation of windows. The returned innerObservable
s honor backpressure and may hold up tocount
elements at most.Scheduler
this operator will usetimespan
- the period of time each window collects items before it should be emittedtimeshift
- the period of time after which a new window will be createdunit
- the unit of time that applies to thetimespan
andtimeshift
argumentscount
- the maximum size of each window before it should be emittedscheduler
- theScheduler
to use when determining the end and start of a windowpublic final Observable<Observable<T>> window(long timespan, java.util.concurrent.TimeUnit unit)
timespan
argument. When the source Observable completes or encounters an error, the resulting Observable emits the current window and propagates the notification from the source Observable.Observable
in an unbounded manner. The returnedObservable
doesn't support backpressure as it uses time to control the creation of windows. The returned innerObservable
s honor backpressure and may hold up tocount
elements at most.window
operates by default on thecomputation
Scheduler
.timespan
- the period of time each window collects items before it should be emitted and replaced with a new windowunit
- the unit of time that applies to thetimespan
argumentpublic final Observable<Observable<T>> window(long timespan, java.util.concurrent.TimeUnit unit, int count)
timespan
argument or a maximum size as specified by thecount
argument (whichever is reached first). When the source Observable completes or encounters an error, the resulting Observable emits the current window and propagates the notification from the source Observable.Observable
in an unbounded manner. The returnedObservable
doesn't support backpressure as it uses time to control the creation of windows. The returned innerObservable
s honor backpressure and may hold up tocount
elements at most.window
operates by default on thecomputation
Scheduler
.timespan
- the period of time each window collects items before it should be emitted and replaced with a new windowunit
- the unit of time that applies to thetimespan
argumentcount
- the maximum size of each window before it should be emittedpublic final Observable<Observable<T>> window(long timespan, java.util.concurrent.TimeUnit unit, int count,Scheduler scheduler)
timespan
argument or a maximum size specified by thecount
argument (whichever is reached first). When the source Observable completes or encounters an error, the resulting Observable emits the current window and propagates the notification from the source Observable.Observable
in an unbounded manner. The returnedObservable
doesn't support backpressure as it uses time to control the creation of windows. The returned innerObservable
s honor backpressure and may hold up tocount
elements at most.Scheduler
this operator will usetimespan
- the period of time each window collects items before it should be emitted and replaced with a new windowunit
- the unit of time which applies to thetimespan
argumentcount
- the maximum size of each window before it should be emittedscheduler
- theScheduler
to use when determining the end and start of a windowpublic final Observable<Observable<T>> window(long timespan, java.util.concurrent.TimeUnit unit,Scheduler scheduler)
timespan
argument. When the source Observable completes or encounters an error, the resulting Observable emits the current window and propagates the notification from the source Observable.Observable
in an unbounded manner. The returnedObservable
doesn't support backpressure as it uses time to control the creation of windows. The returned innerObservable
s honor backpressure but have an unbounded inner buffer thatmay lead toOutOfMemoryError
if left unconsumed.Scheduler
this operator will usetimespan
- the period of time each window collects items before it should be emitted and replaced with a new windowunit
- the unit of time which applies to thetimespan
argumentscheduler
- theScheduler
to use when determining the end and start of a windowpublic final <TOpening,TClosing> Observable<Observable<T>> window(Observable<? extends TOpening> windowOpenings,Func1<? super TOpening,? extendsObservable<? extends TClosing>> closingSelector)
windowOpenings
Observable emits an item and when the Observable returned byclosingSelector
emits an item.windowOpenings
Observable. The inner Observables honor backpressure and buffer everything until the associated closing Observable signals or completes.window
does not operate by default on a particularScheduler
.TOpening
- the element type of the window-opening ObservableTClosing
- the element type of the window-closing ObservableswindowOpenings
- an Observable that, when it emits an item, causes another window to be createdclosingSelector
- aFunc1
that produces an Observable for every window created. When this Observable emits an item, the associated window is closed and emittedpublic final <U> Observable<Observable<T>> window(Observable<U> boundary)
boundary
Observable to control data flow. The inner Observables honor backpressure and buffer everything until the boundary signals the next element.window
does not operate by default on a particularScheduler
.U
- the window element type (ignored)boundary
- an Observable whose emitted items close and open windowsboundary
Observablepublic final <T2,R> Observable<R> zipWith(java.lang.Iterable<? extends T2> other,Func2<? superT,? super T2,? extends R> zipFunction)
Note that theother
Iterable is evaluated as items are observed from the source Observable; it is not pre-consumed. This allows you to zip infinite streams on either side.
interval(long, TimeUnit)
may result in MissingBackpressureException, use one of theonBackpressureX
to handle similar, backpressure-ignoring sources.zipWith
does not operate by default on a particularScheduler
.T2
- the type of items in theother
IterableR
- the type of items emitted by the resulting Observableother
- the Iterable sequencezipFunction
- a function that combines the pairs of items from the Observable and the Iterable to generate the items to be emitted by the resulting Observableother
Iterable sequence and emits the results ofzipFunction
applied to these pairspublic final <T2,R> Observable<R> zipWith(Observable<? extends T2> other,Func2<? superT,? super T2,? extends R> zipFunction)
The operator subscribes to its sources in order they are specified and completes eagerly if one of the sources is shorter than the rest while unsubscribing the other sources. Therefore, it is possible those other sources will never be able to run to completion (and thus not callingdoOnCompleted()
). This can also happen if the sources are exactly the same length; if source A completes and B has been consumed and is about to complete, the operator detects A won't be sending further values and it will unsubscribe B immediately. For example:
range(1, 5).doOnCompleted(action1).zipWith(range(6, 5).doOnCompleted(action2), (a, b) -> a + b)
action1
will be called butaction2
won't.doOnUnsubscribed()
as well or useusing()
to do cleanup in case of completion or unsubscription.interval(long, TimeUnit)
may result in MissingBackpressureException, use one of theonBackpressureX
to handle similar, backpressure-ignoring sources.zipWith
does not operate by default on a particularScheduler
.T2
- the type of items emitted by theother
ObservableR
- the type of items emitted by the resulting Observableother
- the other ObservablezipFunction
- a function that combines the pairs of items from the two Observables to generate the items to be emitted by the resulting Observableother
Observable and emits the results ofzipFunction
applied to these pairspublic final AssertableSubscriber<T> test()
Long.MAX_VALUE
and subscribes it to this Observable.test
does not operate by default on a particularScheduler
.History: 1.2.3 - experimental
public final AssertableSubscriber<T> test(long initialRequestAmount)
initialRequest
amount upfront.test
does not operate by default on a particularScheduler
.History: 1.2.3 - experimental
initialRequestAmount
- the amount to request from upstream upfront, non-negative (not verified)