java.lang.Object | |
↳ | io.reactivex.Flowable<T> |
![]() |
![]()
AsyncProcessor<T>,
BehaviorProcessor<T>,
PublishProcessor<T>,
ReplayProcessor<T>,
UnicastProcessor<T>
|
The Flowable class that implements the Reactive-Streams Pattern and offers factory methods, intermediate operators and the ability to consume reactive dataflows.
Reactive-Streams operates with Publisher
s which Flowable
extends. Many operators
therefore accept general Publisher
s directly and allow direct interoperation with other
Reactive-Streams implementations.
The Flowable hosts the default buffer size of 128 elements for operators, accessible via bufferSize()
,
that can be overridden globally via the system parameter rx2.buffer-size
. Most operators, however, have
overloads that allow setting their internal buffer size explicitly.
The documentation for this class makes use of marble diagrams. The following legend explains these diagrams:
For more information see the ReactiveX documentation.
Public Constructors | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Flowable() |
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
final Single<Boolean> |
all(Predicate<? super T> predicate)
Returns a Single that emits a Boolean that indicates whether all of the items emitted by the source
Publisher satisfy a condition.
| ||||||||||
static <T> Flowable<T> |
amb(Iterable<? extends Publisher<? extends T>> sources)
Mirrors the one Publisher in an Iterable of several Publishers that first either emits an item or sends
a termination notification.
| ||||||||||
static <T> Flowable<T> |
ambArray(Publisher...<? extends T> sources)
Mirrors the one Publisher in an array of several Publishers that first either emits an item or sends
a termination notification.
| ||||||||||
final Flowable<T> |
ambWith(Publisher<? extends T> other)
Mirrors the Publisher (current or provided) that first either emits an item or sends a termination
notification.
| ||||||||||
final Single<Boolean> |
any(Predicate<? super T> predicate)
Returns a Single that emits
true if any item emitted by the source Publisher satisfies a
specified condition, otherwise false . | ||||||||||
final T |
blockingFirst(T defaultItem)
Returns the first item emitted by this
Flowable , or a default value if it emits no
items. | ||||||||||
final T |
blockingFirst()
Returns the first item emitted by this
Flowable , or throws
NoSuchElementException if it emits no items. | ||||||||||
final void |
blockingForEach(Consumer<? super T> onNext)
Invokes a method on each item emitted by this
Flowable and blocks until the Flowable
completes. | ||||||||||
final Iterable<T> |
blockingIterable(int bufferSize)
Converts this
Flowable into an Iterable . | ||||||||||
final Iterable<T> |
blockingIterable()
Converts this
Flowable into an Iterable . | ||||||||||
final T |
blockingLast()
Returns the last item emitted by this
Flowable , or throws
NoSuchElementException if this Flowable emits no items. | ||||||||||
final T |
blockingLast(T defaultItem)
Returns the last item emitted by this
Flowable , or a default value if it emits no
items. | ||||||||||
final Iterable<T> |
blockingLatest()
Returns an
Iterable that returns the latest item emitted by this Flowable ,
waiting if necessary for one to become available. | ||||||||||
final Iterable<T> |
blockingMostRecent(T initialItem)
Returns an
Iterable that always returns the item most recently emitted by this
Flowable . | ||||||||||
final Iterable<T> |
blockingNext()
Returns an
Iterable that blocks until this Flowable emits another item, then
returns that item. | ||||||||||
final T |
blockingSingle(T defaultItem)
If this
Flowable completes after emitting a single item, return that item; if it emits
more than one item, throw an IllegalArgumentException ; if it emits no items, return a default
value. | ||||||||||
final T |
blockingSingle()
If this
Flowable completes after emitting a single item, return that item, otherwise
throw a NoSuchElementException . | ||||||||||
final void |
blockingSubscribe(Consumer<? super T> onNext)
Subscribes to the source and calls the given callbacks on the current thread.
| ||||||||||
final void |
blockingSubscribe(Consumer<? super T> onNext, Consumer<? super Throwable> onError)
Subscribes to the source and calls the given callbacks on the current thread.
| ||||||||||
final void |
blockingSubscribe()
Runs the source observable to a terminal event, ignoring any values and rethrowing any exception.
| ||||||||||
final void |
blockingSubscribe(Consumer<? super T> onNext, Consumer<? super Throwable> onError, Action onComplete)
Subscribes to the source and calls the given callbacks on the current thread.
| ||||||||||
final void |
blockingSubscribe(Subscriber<? super T> subscriber)
Subscribes to the source and calls the Subscriber methods on the current thread.
| ||||||||||
final <U extends Collection<? super T>> Flowable<U> |
buffer(long timespan, long timeskip, TimeUnit unit, Scheduler scheduler, Callable<U> bufferSupplier)
Returns a Flowable that emits buffers of items it collects from the source Publisher.
| ||||||||||
final <B> Flowable<List<T>> |
buffer(Callable<? extends Publisher<B>> boundaryIndicatorSupplier)
Returns a Flowable that emits buffers of items it collects from the source Publisher.
| ||||||||||
final Flowable<List<T>> |
buffer(long timespan, long timeskip, TimeUnit unit, Scheduler scheduler)
Returns a Flowable that emits buffers of items it collects from the source Publisher.
| ||||||||||
final <U extends Collection<? super T>> Flowable<U> |
buffer(int count, Callable<U> bufferSupplier)
Returns a Flowable that emits buffers of items it collects from the source Publisher.
| ||||||||||
final <B, U extends Collection<? super T>> Flowable<U> |
buffer(Publisher<B> boundaryIndicator, Callable<U> bufferSupplier)
Returns a Flowable that emits non-overlapping buffered items from the source Publisher each time the
specified boundary Publisher emits an item.
| ||||||||||
final <B> Flowable<List<T>> |
buffer(Publisher<B> boundaryIndicator, int initialCapacity)
Returns a Flowable that emits non-overlapping buffered items from the source Publisher each time the
specified boundary Publisher emits an item.
| ||||||||||
final Flowable<List<T>> |
buffer(long timespan, TimeUnit unit, Scheduler scheduler)
Returns a Flowable that emits buffers of items it collects from the source Publisher.
| ||||||||||
final Flowable<List<T>> |
buffer(int count)
Returns a Flowable that emits buffers of items it collects from the source Publisher.
| ||||||||||
final Flowable<List<T>> |
buffer(long timespan, long timeskip, TimeUnit unit)
Returns a Flowable that emits buffers of items it collects from the source Publisher.
| ||||||||||
final <TOpening, TClosing> Flowable<List<T>> |
buffer(Flowable<? extends TOpening> openingIndicator, Function<? super TOpening, ? extends Publisher<? extends TClosing>> closingIndicator)
Returns a Flowable that emits buffers of items it collects from the source Publisher.
| ||||||||||
final Flowable<List<T>> |
buffer(long timespan, TimeUnit unit, Scheduler scheduler, int count)
Returns a Flowable that emits buffers of items it collects from the source Publisher.
| ||||||||||
final Flowable<List<T>> |
buffer(long timespan, TimeUnit unit)
Returns a Flowable that emits buffers of items it collects from the source Publisher.
| ||||||||||
final <U extends Collection<? super T>> Flowable<U> |
buffer(long timespan, TimeUnit unit, Scheduler scheduler, int count, Callable<U> bufferSupplier, boolean restartTimerOnMaxSize)
Returns a Flowable that emits buffers of items it collects from the source Publisher.
| ||||||||||
final Flowable<List<T>> |
buffer(int count, int skip)
Returns a Flowable that emits buffers of items it collects from the source Publisher.
| ||||||||||
final <B> Flowable<List<T>> |
buffer(Publisher<B> boundaryIndicator)
Returns a Flowable that emits non-overlapping buffered items from the source Publisher each time the
specified boundary Publisher emits an item.
| ||||||||||
final <TOpening, TClosing, U extends Collection<? super T>> Flowable<U> |
buffer(Flowable<? extends TOpening> openingIndicator, Function<? super TOpening, ? extends Publisher<? extends TClosing>> closingIndicator, Callable<U> bufferSupplier)
Returns a Flowable that emits buffers of items it collects from the source Publisher.
| ||||||||||
final <B, U extends Collection<? super T>> Flowable<U> |
buffer(Callable<? extends Publisher<B>> boundaryIndicatorSupplier, Callable<U> bufferSupplier)
Returns a Flowable that emits buffers of items it collects from the source Publisher.
| ||||||||||
final Flowable<List<T>> |
buffer(long timespan, TimeUnit unit, int count)
Returns a Flowable that emits buffers of items it collects from the source Publisher.
| ||||||||||
final <U extends Collection<? super T>> Flowable<U> |
buffer(int count, int skip, Callable<U> bufferSupplier)
Returns a Flowable that emits buffers of items it collects from the source Publisher.
| ||||||||||
static int |
bufferSize()
Returns the default internal buffer size used by most async operators.
| ||||||||||
final Flowable<T> |
cache()
Returns a Flowable that subscribes to this Publisher lazily, caches all of its events
and replays them, in the same order as received, to all the downstream subscribers.
| ||||||||||
final Flowable<T> |
cacheWithInitialCapacity(int initialCapacity)
Returns a Flowable that subscribes to this Publisher lazily, caches all of its events
and replays them, in the same order as received, to all the downstream subscribers.
| ||||||||||
final <U> Flowable<U> |
cast(Class<U> clazz)
Returns a Flowable that emits the items emitted by the source Publisher, converted to the specified
type.
| ||||||||||
final <U> Single<U> |
collect(Callable<? extends U> initialItemSupplier, BiConsumer<? super U, ? super T> collector)
Collects items emitted by the source Publisher into a single mutable data structure and returns
a Single that emits this structure.
| ||||||||||
final <U> Single<U> |
collectInto(U initialItem, BiConsumer<? super U, ? super T> collector)
Collects items emitted by the source Publisher into a single mutable data structure and returns
a Single that emits this structure.
| ||||||||||
static <T1, T2, T3, T4, T5, T6, T7, T8, T9, R> Flowable<R> |
combineLatest(Publisher<? extends T1> source1, Publisher<? extends T2> source2, Publisher<? extends T3> source3, Publisher<? extends T4> source4, Publisher<? extends T5> source5, Publisher<? extends T6> source6, Publisher<? extends T7> source7, Publisher<? extends T8> source8, Publisher<? extends T9> source9, Function9<? super T1, ? super T2, ? super T3, ? super T4, ? super T5, ? super T6, ? super T7, ? super T8, ? super T9, ? extends R> combiner)
Combines nine source Publishers by emitting an item that aggregates the latest values of each of the
source Publishers each time an item is received from any of the source Publishers, where this
aggregation is defined by a specified function.
| ||||||||||
static <T, R> Flowable<R> |
combineLatest(Publisher[]<? extends T> sources, Function<? super Object[], ? extends R> combiner)
Combines a collection of source Publishers by emitting an item that aggregates the latest values of each of
the source Publishers each time an item is received from any of the source Publishers, where this
aggregation is defined by a specified function.
| ||||||||||
static <T, R> Flowable<R> |
combineLatest(Iterable<? extends Publisher<? extends T>> sources, Function<? super Object[], ? extends R> combiner)
Combines a collection of source Publishers by emitting an item that aggregates the latest values of each of
the source Publishers each time an item is received from any of the source Publishers, where this
aggregation is defined by a specified function.
| ||||||||||
static <T1, T2, T3, T4, T5, T6, T7, T8, R> Flowable<R> |
combineLatest(Publisher<? extends T1> source1, Publisher<? extends T2> source2, Publisher<? extends T3> source3, Publisher<? extends T4> source4, Publisher<? extends T5> source5, Publisher<? extends T6> source6, Publisher<? extends T7> source7, Publisher<? extends T8> source8, Function8<? super T1, ? super T2, ? super T3, ? super T4, ? super T5, ? super T6, ? super T7, ? super T8, ? extends R> combiner)
Combines eight source Publishers by emitting an item that aggregates the latest values of each of the
source Publishers each time an item is received from any of the source Publishers, where this
aggregation is defined by a specified function.
| ||||||||||
static <T1, T2, R> Flowable<R> |
combineLatest(Publisher<? extends T1> source1, Publisher<? extends T2> source2, BiFunction<? super T1, ? super T2, ? extends R> combiner)
Combines two source Publishers by emitting an item that aggregates the latest values of each of the
source Publishers each time an item is received from either of the source Publishers, where this
aggregation is defined by a specified function.
| ||||||||||
static <T1, T2, T3, R> Flowable<R> |
combineLatest(Publisher<? extends T1> source1, Publisher<? extends T2> source2, Publisher<? extends T3> source3, Function3<? super T1, ? super T2, ? super T3, ? extends R> combiner)
Combines three source Publishers by emitting an item that aggregates the latest values of each of the
source Publishers each time an item is received from any of the source Publishers, where this
aggregation is defined by a specified function.
| ||||||||||
static <T1, T2, T3, T4, R> Flowable<R> |
combineLatest(Publisher<? extends T1> source1, Publisher<? extends T2> source2, Publisher<? extends T3> source3, Publisher<? extends T4> source4, Function4<? super T1, ? super T2, ? super T3, ? super T4, ? extends R> combiner)
Combines four source Publishers by emitting an item that aggregates the latest values of each of the
source Publishers each time an item is received from any of the source Publishers, where this
aggregation is defined by a specified function.
| ||||||||||
static <T1, T2, T3, T4, T5, R> Flowable<R> |
combineLatest(Publisher<? extends T1> source1, Publisher<? extends T2> source2, Publisher<? extends T3> source3, Publisher<? extends T4> source4, Publisher<? extends T5> source5, Function5<? super T1, ? super T2, ? super T3, ? super T4, ? super T5, ? extends R> combiner)
Combines five source Publishers by emitting an item that aggregates the latest values of each of the
source Publishers each time an item is received from any of the source Publishers, where this
aggregation is defined by a specified function.
| ||||||||||
static <T, R> Flowable<R> |
combineLatest(Publisher[]<? extends T> sources, Function<? super Object[], ? extends R> combiner, int bufferSize)
Combines a collection of source Publishers by emitting an item that aggregates the latest values of each of
the source Publishers each time an item is received from any of the source Publishers, where this
aggregation is defined by a specified function.
| ||||||||||
static <T, R> Flowable<R> |
combineLatest(Function<? super Object[], ? extends R> combiner, Publisher...<? extends T> sources)
Combines a collection of source Publishers by emitting an item that aggregates the latest values of each of
the source Publishers each time an item is received from any of the source Publishers, where this
aggregation is defined by a specified function.
| ||||||||||
static <T1, T2, T3, T4, T5, T6, T7, R> Flowable<R> |
combineLatest(Publisher<? extends T1> source1, Publisher<? extends T2> source2, Publisher<? extends T3> source3, Publisher<? extends T4> source4, Publisher<? extends T5> source5, Publisher<? extends T6> source6, Publisher<? extends T7> source7, Function7<? super T1, ? super T2, ? super T3, ? super T4, ? super T5, ? super T6, ? super T7, ? extends R> combiner)
Combines seven source Publishers by emitting an item that aggregates the latest values of each of the
source Publishers each time an item is received from any of the source Publishers, where this
aggregation is defined by a specified function.
| ||||||||||
static <T, R> Flowable<R> |
combineLatest(Iterable<? extends Publisher<? extends T>> sources, Function<? super Object[], ? extends R> combiner, int bufferSize)
Combines a collection of source Publishers by emitting an item that aggregates the latest values of each of
the source Publishers each time an item is received from any of the source Publishers, where this
aggregation is defined by a specified function.
| ||||||||||
static <T1, T2, T3, T4, T5, T6, R> Flowable<R> |
combineLatest(Publisher<? extends T1> source1, Publisher<? extends T2> source2, Publisher<? extends T3> source3, Publisher<? extends T4> source4, Publisher<? extends T5> source5, Publisher<? extends T6> source6, Function6<? super T1, ? super T2, ? super T3, ? super T4, ? super T5, ? super T6, ? extends R> combiner)
Combines six source Publishers by emitting an item that aggregates the latest values of each of the
source Publishers each time an item is received from any of the source Publishers, where this
aggregation is defined by a specified function.
| ||||||||||
static <T, R> Flowable<R> |
combineLatestDelayError(Function<? super Object[], ? extends R> combiner, int bufferSize, Publisher...<? extends T> sources)
Combines a collection of source Publishers by emitting an item that aggregates the latest values of each of
the source Publishers each time an item is received from any of the source Publisher, where this
aggregation is defined by a specified function and delays any error from the sources until
all source Publishers terminate.
| ||||||||||
static <T, R> Flowable<R> |
combineLatestDelayError(Publisher[]<? extends T> sources, Function<? super Object[], ? extends R> combiner)
Combines a collection of source Publishers by emitting an item that aggregates the latest values of each of
the source Publishers each time an item is received from any of the source Publishers, where this
aggregation is defined by a specified function.
| ||||||||||
static <T, R> Flowable<R> |
combineLatestDelayError(Publisher[]<? extends T> sources, Function<? super Object[], ? extends R> combiner, int bufferSize)
Combines a collection of source Publishers by emitting an item that aggregates the latest values of each of
the source Publishers each time an item is received from any of the source Publishers, where this
aggregation is defined by a specified function and delays any error from the sources until
all source Publishers terminate.
| ||||||||||
static <T, R> Flowable<R> |
combineLatestDelayError(Iterable<? extends Publisher<? extends T>> sources, Function<? super Object[], ? extends R> combiner)
Combines a collection of source Publishers by emitting an item that aggregates the latest values of each of
the source Publishers each time an item is received from any of the source Publishers, where this
aggregation is defined by a specified function and delays any error from the sources until
all source Publishers terminate.
| ||||||||||
static <T, R> Flowable<R> |
combineLatestDelayError(Iterable<? extends Publisher<? extends T>> sources, Function<? super Object[], ? extends R> combiner, int bufferSize)
Combines a collection of source Publishers by emitting an item that aggregates the latest values of each of
the source Publishers each time an item is received from any of the source Publishers, where this
aggregation is defined by a specified function and delays any error from the sources until
all source Publishers terminate.
| ||||||||||
static <T, R> Flowable<R> |
combineLatestDelayError(Function<? super Object[], ? extends R> combiner, Publisher...<? extends T> sources)
Combines a collection of source Publishers by emitting an item that aggregates the latest values of each of
the source Publishers each time an item is received from any of the source Publishers, where this
aggregation is defined by a specified function and delays any error from the sources until
all source Publishers terminate.
| ||||||||||
final <R> Flowable<R> |
compose(FlowableTransformer<? super T, ? extends R> composer)
Transform a Publisher by applying a particular Transformer function to it.
| ||||||||||
static <T> Flowable<T> |
concat(Publisher<? extends T> source1, Publisher<? extends T> source2, Publisher<? extends T> source3)
Returns a Flowable that emits the items emitted by three Publishers, one after the other, without
interleaving them.
| ||||||||||
static <T> Flowable<T> |
concat(Iterable<? extends Publisher<? extends T>> sources)
Concatenates elements of each Publisher provided via an Iterable sequence into a single sequence
of elements without interleaving them.
| ||||||||||
static <T> Flowable<T> |
concat(Publisher<? extends T> source1, Publisher<? extends T> source2, Publisher<? extends T> source3, Publisher<? extends T> source4)
Returns a Flowable that emits the items emitted by four Publishers, one after the other, without
interleaving them.
| ||||||||||
static <T> Flowable<T> |
concat(Publisher<? extends Publisher<? extends T>> sources, int prefetch)
Returns a Flowable that emits the items emitted by each of the Publishers emitted by the source
Publisher, one after the other, without interleaving them.
| ||||||||||
static <T> Flowable<T> |
concat(Publisher<? extends Publisher<? extends T>> sources)
Returns a Flowable that emits the items emitted by each of the Publishers emitted by the source
Publisher, one after the other, without interleaving them.
| ||||||||||
static <T> Flowable<T> |
concat(Publisher<? extends T> source1, Publisher<? extends T> source2)
Returns a Flowable that emits the items emitted by two Publishers, one after the other, without
interleaving them.
| ||||||||||
static <T> Flowable<T> |
concatArray(Publisher...<? extends T> sources)
Concatenates a variable number of Publisher sources.
| ||||||||||
static <T> Flowable<T> |
concatArrayDelayError(Publisher...<? extends T> sources)
Concatenates a variable number of Publisher sources and delays errors from any of them
till all terminate.
| ||||||||||
static <T> Flowable<T> |
concatArrayEager(int maxConcurrency, int prefetch, Publisher...<? extends T> sources)
Concatenates a sequence of Publishers eagerly into a single stream of values.
| ||||||||||
static <T> Flowable<T> |
concatArrayEager(Publisher...<? extends T> sources)
Concatenates a sequence of Publishers eagerly into a single stream of values.
| ||||||||||
static <T> Flowable<T> |
concatDelayError(Publisher<? extends Publisher<? extends T>> sources, int prefetch, boolean tillTheEnd)
Concatenates the Publisher sequence of Publishers into a single sequence by subscribing to each inner Publisher,
one after the other, one at a time and delays any errors till the all inner and the outer Publishers terminate.
| ||||||||||
static <T> Flowable<T> |
concatDelayError(Iterable<? extends Publisher<? extends T>> sources)
Concatenates the Iterable sequence of Publishers into a single sequence by subscribing to each Publisher,
one after the other, one at a time and delays any errors till the all inner Publishers terminate.
| ||||||||||
static <T> Flowable<T> |
concatDelayError(Publisher<? extends Publisher<? extends T>> sources)
Concatenates the Publisher sequence of Publishers into a single sequence by subscribing to each inner Publisher,
one after the other, one at a time and delays any errors till the all inner and the outer Publishers terminate.
| ||||||||||
static <T> Flowable<T> |
concatEager(Iterable<? extends Publisher<? extends T>> sources)
Concatenates a sequence of Publishers eagerly into a single stream of values.
| ||||||||||
static <T> Flowable<T> |
concatEager(Publisher<? extends Publisher<? extends T>> sources, int maxConcurrency, int prefetch)
Concatenates a Publisher sequence of Publishers eagerly into a single stream of values.
| ||||||||||
static <T> Flowable<T> |
concatEager(Publisher<? extends Publisher<? extends T>> sources)
Concatenates a Publisher sequence of Publishers eagerly into a single stream of values.
| ||||||||||
static <T> Flowable<T> |
concatEager(Iterable<? extends Publisher<? extends T>> sources, int maxConcurrency, int prefetch)
Concatenates a sequence of Publishers eagerly into a single stream of values.
| ||||||||||
final <R> Flowable<R> |
concatMap(Function<? super T, ? extends Publisher<? extends R>> mapper, int prefetch)
Returns a new Flowable that emits items resulting from applying a function that you supply to each item
emitted by the source Publisher, where that function returns a Publisher, and then emitting the items
that result from concatenating those resulting Publishers.
| ||||||||||
final <R> Flowable<R> |
concatMap(Function<? super T, ? extends Publisher<? extends R>> mapper)
Returns a new Flowable that emits items resulting from applying a function that you supply to each item
emitted by the source Publisher, where that function returns a Publisher, and then emitting the items
that result from concatenating those resulting Publishers.
| ||||||||||
final <R> Flowable<R> |
concatMapDelayError(Function<? super T, ? extends Publisher<? extends R>> mapper, int prefetch, boolean tillTheEnd)
Maps each of the items into a Publisher, 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 Publishers
till all of them terminate.
| ||||||||||
final <R> Flowable<R> |
concatMapDelayError(Function<? super T, ? extends Publisher<? extends R>> mapper)
Maps each of the items into a Publisher, 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 Publishers
till all of them terminate.
| ||||||||||
final <R> Flowable<R> |
concatMapEager(Function<? super T, ? extends Publisher<? extends R>> mapper)
Maps a sequence of values into Publishers and concatenates these Publishers eagerly into a single
Publisher.
| ||||||||||
final <R> Flowable<R> |
concatMapEager(Function<? super T, ? extends Publisher<? extends R>> mapper, int maxConcurrency, int prefetch)
Maps a sequence of values into Publishers and concatenates these Publishers eagerly into a single
Publisher.
| ||||||||||
final <R> Flowable<R> |
concatMapEagerDelayError(Function<? super T, ? extends Publisher<? extends R>> mapper, boolean tillTheEnd)
Maps a sequence of values into Publishers and concatenates these Publishers eagerly into a single
Publisher.
| ||||||||||
final <R> Flowable<R> |
concatMapEagerDelayError(Function<? super T, ? extends Publisher<? extends R>> mapper, int maxConcurrency, int prefetch, boolean tillTheEnd)
Maps a sequence of values into Publishers and concatenates these Publishers eagerly into a single
Publisher.
| ||||||||||
final <U> Flowable<U> |
concatMapIterable(Function<? super T, ? extends Iterable<? extends U>> mapper)
Returns a Flowable that concatenate each item emitted by the source Publisher with the values in an
Iterable corresponding to that item that is generated by a selector.
| ||||||||||
final <U> Flowable<U> |
concatMapIterable(Function<? super T, ? extends Iterable<? extends U>> mapper, int prefetch)
Returns a Flowable that concatenate each item emitted by the source Publisher with the values in an
Iterable corresponding to that item that is generated by a selector.
| ||||||||||
final Flowable<T> |
concatWith(Publisher<? extends T> other)
Returns a Flowable that emits the items emitted from the current Publisher, then the next, one after
the other, without interleaving them.
| ||||||||||
final Single<Boolean> |
contains(Object item)
Returns a Single that emits a Boolean that indicates whether the source Publisher emitted a
specified item.
| ||||||||||
final Single<Long> |
count()
Returns a Single that counts the total number of items emitted by the source Publisher and emits
this count as a 64-bit Long.
| ||||||||||
static <T> Flowable<T> |
create(FlowableOnSubscribe<T> source, BackpressureStrategy mode)
Provides an API (via a cold Flowable) that bridges the reactive world with the callback-style,
generally non-backpressured world.
| ||||||||||
final Flowable<T> |
debounce(long timeout, TimeUnit unit)
Returns a Flowable that mirrors the source Publisher, except that it drops items emitted by the
source Publisher that are followed by newer items before a timeout value expires.
| ||||||||||
final Flowable<T> |
debounce(long timeout, TimeUnit unit, Scheduler scheduler)
Returns a Flowable that mirrors the source Publisher, except that it drops items emitted by the
source Publisher that are followed by newer items before a timeout value expires on a specified
Scheduler.
| ||||||||||
final <U> Flowable<T> |
debounce(Function<? super T, ? extends Publisher<U>> debounceIndicator)
Returns a Flowable that mirrors the source Publisher, except that it drops items emitted by the
source Publisher that are followed by another item within a computed debounce duration.
| ||||||||||
final Flowable<T> |
defaultIfEmpty(T defaultItem)
Returns a Flowable that emits the items emitted by the source Publisher or a specified default item
if the source Publisher is empty.
| ||||||||||
static <T> Flowable<T> |
defer(Callable<? extends Publisher<? extends T>> supplier)
Returns a Flowable that calls a Publisher factory to create a Publisher for each new Subscriber
that subscribes.
| ||||||||||
final Flowable<T> |
delay(long delay, TimeUnit unit, boolean delayError)
Returns a Flowable that emits the items emitted by the source Publisher shifted forward in time by a
specified delay.
| ||||||||||
final <U, V> Flowable<T> |
delay(Publisher<U> subscriptionIndicator, Function<? super T, ? extends Publisher<V>> itemDelayIndicator)
Returns a Flowable that delays the subscription to and emissions from the source Publisher via another
Publisher on a per-item basis.
| ||||||||||
final Flowable<T> |
delay(long delay, TimeUnit unit, Scheduler scheduler)
Returns a Flowable that emits the items emitted by the source Publisher shifted forward in time by a
specified delay.
| ||||||||||
final Flowable<T> |
delay(long delay, TimeUnit unit, Scheduler scheduler, boolean delayError)
Returns a Flowable that emits the items emitted by the source Publisher shifted forward in time by a
specified delay.
| ||||||||||
final <U> Flowable<T> |
delay(Function<? super T, ? extends Publisher<U>> itemDelayIndicator)
Returns a Flowable that delays the emissions of the source Publisher via another Publisher on a
per-item basis.
| ||||||||||
final Flowable<T> |
delay(long delay, TimeUnit unit)
Returns a Flowable that emits the items emitted by the source Publisher shifted forward in time by a
specified delay.
| ||||||||||
final <U> Flowable<T> |
delaySubscription(Publisher<U> subscriptionIndicator)
Returns a Flowable that delays the subscription to this Publisher
until the other Publisher emits an element or completes normally.
| ||||||||||
final Flowable<T> |
delaySubscription(long delay, TimeUnit unit, Scheduler scheduler)
Returns a Flowable that delays the subscription to the source Publisher by a given amount of time,
both waiting and subscribing on a given Scheduler.
| ||||||||||
final Flowable<T> |
delaySubscription(long delay, TimeUnit unit)
Returns a Flowable that delays the subscription to the source Publisher by a given amount of time.
| ||||||||||
final <T2> Flowable<T2> |
dematerialize()
Returns a Flowable that reverses the effect of
materialize by transforming the
Notification objects emitted by the source Publisher into the items or notifications they
represent. | ||||||||||
final Flowable<T> |
distinct()
Returns a Flowable that emits all items emitted by the source Publisher that are distinct.
| ||||||||||
final <K> Flowable<T> |
distinct(Function<? super T, K> keySelector)
Returns a Flowable that emits all items emitted by the source Publisher that are distinct according
to a key selector function.
| ||||||||||
final <K> Flowable<T> |
distinct(Function<? super T, K> keySelector, Callable<? extends Collection<? super K>> collectionSupplier)
Returns a Flowable that emits all items emitted by the source Publisher that are distinct according
to a key selector function.
| ||||||||||
final Flowable<T> |
distinctUntilChanged(BiPredicate<? super T, ? super T> comparer)
Returns a Flowable that emits all items emitted by the source Publisher that are distinct from their
immediate predecessors when compared with each other via the provided comparator function.
| ||||||||||
final <K> Flowable<T> |
distinctUntilChanged(Function<? super T, K> keySelector)
Returns a Flowable that emits all items emitted by the source Publisher that are distinct from their
immediate predecessors, according to a key selector function.
| ||||||||||
final Flowable<T> |
distinctUntilChanged()
Returns a Flowable that emits all items emitted by the source Publisher that are distinct from their
immediate predecessors.
| ||||||||||
final Flowable<T> |
doAfterNext(Consumer<? super T> onAfterNext)
Calls the specified consumer with the current item after this item has been emitted to the downstream.
| ||||||||||
final Flowable<T> | doAfterTerminate(Action onAfterTerminate) | ||||||||||
final Flowable<T> |
doFinally(Action onFinally)
Calls the specified action after this Flowable signals onError or onCompleted or gets cancelled by
the downstream.
| ||||||||||
final Flowable<T> |
doOnCancel(Action onCancel)
Calls the cancel
Action if the downstream cancels the sequence. | ||||||||||
final Flowable<T> |
doOnComplete(Action onComplete)
Modifies the source Publisher so that it invokes an action when it calls
onComplete . | ||||||||||
final Flowable<T> |
doOnEach(Consumer<? super Notification<T>> onNotification)
Modifies the source Publisher so that it invokes an action for each item it emits.
| ||||||||||
final Flowable<T> |
doOnEach(Subscriber<? super T> subscriber)
Modifies the source Publisher so that it notifies a Subscriber for each item and terminal event it emits.
| ||||||||||
final Flowable<T> |
doOnError(Consumer<? super Throwable> onError)
Modifies the source Publisher so that it invokes an action if it calls
onError . | ||||||||||
final Flowable<T> |
doOnLifecycle(Consumer<? super Subscription> onSubscribe, LongConsumer onRequest, Action onCancel)
Calls the appropriate onXXX method (shared between all Subscribers) for the lifecycle events of
the sequence (subscription, cancellation, requesting).
| ||||||||||
final Flowable<T> |
doOnNext(Consumer<? super T> onNext)
Modifies the source Publisher so that it invokes an action when it calls
onNext . | ||||||||||
final Flowable<T> |
doOnRequest(LongConsumer onRequest)
Modifies the source
Publisher so that it invokes the given action when it receives a
request for more items. | ||||||||||
final Flowable<T> |
doOnSubscribe(Consumer<? super Subscription> onSubscribe)
Modifies the source
Publisher so that it invokes the given action when it is subscribed from
its subscribers. | ||||||||||
final Flowable<T> |
doOnTerminate(Action onTerminate)
Modifies the source Publisher so that it invokes an action when it calls
onComplete or
onError . | ||||||||||
final Single<T> |
elementAt(long index, T defaultItem)
Returns a Flowable that emits the item found at a specified index in a sequence of emissions from
this Flowable, or a default item if that index is out of range.
| ||||||||||
final Maybe<T> |
elementAt(long index)
Returns a Maybe that emits the single item at a specified index in a sequence of emissions from
this Flowable or completes if this Flowable sequence has fewer elements than index.
| ||||||||||
final Single<T> |
elementAtOrError(long index)
Returns a Flowable that emits the item found at a specified index in a sequence of emissions from
this Flowable or signals a
NoSuchElementException if this Flowable has fewer elements than index. | ||||||||||
static <T> Flowable<T> |
empty()
Returns a Flowable that emits no items to the Subscriber and immediately invokes its
onComplete method. | ||||||||||
static <T> Flowable<T> |
error(Callable<? extends Throwable> supplier)
Returns a Flowable that invokes a Subscriber's
onError method when the
Subscriber subscribes to it. | ||||||||||
static <T> Flowable<T> |
error(Throwable throwable)
Returns a Flowable that invokes a Subscriber's
onError method when the
Subscriber subscribes to it. | ||||||||||
final Flowable<T> |
filter(Predicate<? super T> predicate)
Filters items emitted by a Publisher by only emitting those that satisfy a specified predicate.
| ||||||||||
final Single<T> |
first(T defaultItem)
Returns a Single that emits only the very first item emitted by this Flowable, or a default
item if this Flowable completes without emitting anything.
| ||||||||||
final Maybe<T> |
firstElement()
Returns a Maybe that emits only the very first item emitted by this Flowable or
completes if this Flowable is empty.
| ||||||||||
final Single<T> |
firstOrError()
Returns a Single that emits only the very first item emitted by this Flowable or
signals a
NoSuchElementException if this Flowable is empty. | ||||||||||
final <R> Flowable<R> |
flatMap(Function<? super T, ? extends Publisher<? extends R>> onNextMapper, Function<Throwable, ? extends Publisher<? extends R>> onErrorMapper, Callable<? extends Publisher<? extends R>> onCompleteSupplier, int maxConcurrency)
Returns a Flowable that applies a function to each item emitted or notification raised by the source
Publisher and then flattens the Publishers returned from these functions and emits the resulting items,
while limiting the maximum number of concurrent subscriptions to these Publishers.
| ||||||||||
final <U, R> Flowable<R> |
flatMap(Function<? super T, ? extends Publisher<? extends U>> mapper, BiFunction<? super T, ? super U, ? extends R> combiner, boolean delayErrors, int maxConcurrency)
Returns a Flowable that emits the results of a specified function to the pair of values emitted by the
source Publisher and a specified collection Publisher, while limiting the maximum number of concurrent
subscriptions to these Publishers.
| ||||||||||
final <U, R> Flowable<R> |
flatMap(Function<? super T, ? extends Publisher<? extends U>> mapper, BiFunction<? super T, ? super U, ? extends R> combiner, int maxConcurrency)
Returns a Flowable that emits the results of a specified function to the pair of values emitted by the
source Publisher and a specified collection Publisher, while limiting the maximum number of concurrent
subscriptions to these Publishers.
| ||||||||||
final <R> Flowable<R> |
flatMap(Function<? super T, ? extends Publisher<? extends R>> mapper, boolean delayErrors, int maxConcurrency)
Returns a Flowable that emits items based on applying a function that you supply to each item emitted
by the source Publisher, where that function returns a Publisher, and then merging those resulting
Publishers and emitting the results of this merger, while limiting the maximum number of concurrent
subscriptions to these Publishers.
| ||||||||||
final <R> Flowable<R> |
flatMap(Function<? super T, ? extends Publisher<? extends R>> mapper, int maxConcurrency)
Returns a Flowable that emits items based on applying a function that you supply to each item emitted
by the source Publisher, where that function returns a Publisher, and then merging those resulting
Publishers and emitting the results of this merger, while limiting the maximum number of concurrent
subscriptions to these Publishers.
| ||||||||||
final <U, R> Flowable<R> |
flatMap(Function<? super T, ? extends Publisher<? extends U>> mapper, BiFunction<? super T, ? super U, ? extends R> combiner)
Returns a Flowable that emits the results of a specified function to the pair of values emitted by the
source Publisher and a specified collection Publisher.
| ||||||||||
final <U, R> Flowable<R> |
flatMap(Function<? super T, ? extends Publisher<? extends U>> mapper, BiFunction<? super T, ? super U, ? extends R> combiner, boolean delayErrors, int maxConcurrency, int bufferSize)
Returns a Flowable that emits the results of a specified function to the pair of values emitted by the
source Publisher and a specified collection Publisher, while limiting the maximum number of concurrent
subscriptions to these Publishers.
| ||||||||||
final <R> Flowable<R> |
flatMap(Function<? super T, ? extends Publisher<? extends R>> mapper, boolean delayErrors)
Returns a Flowable that emits items based on applying a function that you supply to each item emitted
by the source Publisher, where that function returns a Publisher, and then merging those resulting
Publishers and emitting the results of this merger.
| ||||||||||
final <U, R> Flowable<R> |
flatMap(Function<? super T, ? extends Publisher<? extends U>> mapper, BiFunction<? super T, ? super U, ? extends R> combiner, boolean delayErrors)
Returns a Flowable that emits the results of a specified function to the pair of values emitted by the
source Publisher and a specified collection Publisher.
| ||||||||||
final <R> Flowable<R> |
flatMap(Function<? super T, ? extends Publisher<? extends R>> onNextMapper, Function<? super Throwable, ? extends Publisher<? extends R>> onErrorMapper, Callable<? extends Publisher<? extends R>> onCompleteSupplier)
Returns a Flowable that applies a function to each item emitted or notification raised by the source
Publisher and then flattens the Publishers returned from these functions and emits the resulting items.
| ||||||||||
final <R> Flowable<R> |
flatMap(Function<? super T, ? extends Publisher<? extends R>> mapper)
Returns a Flowable that emits items based on applying a function that you supply to each item emitted
by the source Publisher, where that function returns a Publisher, and then merging those resulting
Publishers and emitting the results of this merger.
| ||||||||||
final <R> Flowable<R> |
flatMap(Function<? super T, ? extends Publisher<? extends R>> mapper, boolean delayErrors, int maxConcurrency, int bufferSize)
Returns a Flowable that emits items based on applying a function that you supply to each item emitted
by the source Publisher, where that function returns a Publisher, and then merging those resulting
Publishers and emitting the results of this merger, while limiting the maximum number of concurrent
subscriptions to these Publishers.
| ||||||||||
final Completable |
flatMapCompletable(Function<? super T, ? extends CompletableSource> mapper)
Maps each element of the upstream Flowable into CompletableSources, subscribes to them and
waits until the upstream and all CompletableSources complete.
| ||||||||||
final Completable |
flatMapCompletable(Function<? super T, ? extends CompletableSource> mapper, boolean delayErrors, int maxConcurrency)
Maps each element of the upstream Flowable into CompletableSources, subscribes to them and
waits until the upstream and all CompletableSources complete, optionally delaying all errors.
| ||||||||||
final <U> Flowable<U> |
flatMapIterable(Function<? super T, ? extends Iterable<? extends U>> mapper, int bufferSize)
Returns a Flowable that merges each item emitted by the source Publisher with the values in an
Iterable corresponding to that item that is generated by a selector.
| ||||||||||
final <U, V> Flowable<V> |
flatMapIterable(Function<? super T, ? extends Iterable<? extends U>> mapper, BiFunction<? super T, ? super U, ? extends V> resultSelector)
Returns a Flowable that emits the results of applying a function to the pair of values from the source
Publisher and an Iterable corresponding to that item that is generated by a selector.
| ||||||||||
final <U> Flowable<U> |
flatMapIterable(Function<? super T, ? extends Iterable<? extends U>> mapper)
Returns a Flowable that merges each item emitted by the source Publisher with the values in an
Iterable corresponding to that item that is generated by a selector.
| ||||||||||
final <U, V> Flowable<V> |
flatMapIterable(Function<? super T, ? extends Iterable<? extends U>> mapper, BiFunction<? super T, ? super U, ? extends V> resultSelector, int prefetch)
Returns a Flowable that merges each item emitted by the source Publisher 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 Publishers.
| ||||||||||
final <R> Flowable<R> |
flatMapMaybe(Function<? super T, ? extends MaybeSource<? extends R>> mapper, boolean delayErrors, int maxConcurrency)
Maps each element of the upstream Flowable into MaybeSources, subscribes to them and
waits until the upstream and all MaybeSources complete, optionally delaying all errors.
| ||||||||||
final <R> Flowable<R> |
flatMapMaybe(Function<? super T, ? extends MaybeSource<? extends R>> mapper)
Maps each element of the upstream Flowable into MaybeSources, subscribes to them and
waits until the upstream and all MaybeSources complete.
| ||||||||||
final <R> Flowable<R> |
flatMapSingle(Function<? super T, ? extends SingleSource<? extends R>> mapper, boolean delayErrors, int maxConcurrency)
Maps each element of the upstream Flowable into SingleSources, subscribes to them and
waits until the upstream and all SingleSources complete, optionally delaying all errors.
| ||||||||||
final <R> Flowable<R> |
flatMapSingle(Function<? super T, ? extends SingleSource<? extends R>> mapper)
Maps each element of the upstream Flowable into SingleSources, subscribes to them and
waits until the upstream and all SingleSources complete.
| ||||||||||
final Disposable |
forEach(Consumer<? super T> onNext)
Subscribes to the Publisher and receives notifications for each element.
| ||||||||||
final Disposable |
forEachWhile(Predicate<? super T> onNext, Consumer<? super Throwable> onError, Action onComplete)
Subscribes to the Publisher and receives notifications for each element and the terminal events until the
onNext Predicate returns false.
| ||||||||||
final Disposable |
forEachWhile(Predicate<? super T> onNext, Consumer<? super Throwable> onError)
Subscribes to the Publisher and receives notifications for each element and error events until the
onNext Predicate returns false.
| ||||||||||
final Disposable |
forEachWhile(Predicate<? super T> onNext)
Subscribes to the Publisher and receives notifications for each element until the
onNext Predicate returns false.
| ||||||||||
static <T> Flowable<T> |
fromArray(T... items)
Converts an Array into a Publisher that emits the items in the Array.
| ||||||||||
static <T> Flowable<T> |
fromCallable(Callable<? extends T> supplier)
Returns a Flowable that, when a Subscriber subscribes to it, invokes a function you specify and then
emits the value returned from that function.
| ||||||||||
static <T> Flowable<T> | fromFuture(Future<? extends T> future, Scheduler scheduler) | ||||||||||
static <T> Flowable<T> |
fromFuture(Future<? extends T> future, long timeout, TimeUnit unit, Scheduler scheduler)
Converts a
Future into a Publisher, with a timeout on the Future. | ||||||||||
static <T> Flowable<T> |
fromFuture(Future<? extends T> future, long timeout, TimeUnit unit)
Converts a
Future into a Publisher, with a timeout on the Future. | ||||||||||
static <T> Flowable<T> |
fromFuture(Future<? extends T> future)
Converts a
Future into a Publisher. | ||||||||||
static <T> Flowable<T> |
fromIterable(Iterable<? extends T> source)
Converts an
Iterable sequence into a Publisher that emits the items in the sequence. | ||||||||||
static <T> Flowable<T> |
fromPublisher(Publisher<? extends T> source)
Converts an arbitrary Reactive-Streams Publisher into a Flowable if not already a
Flowable.
| ||||||||||
static <T, S> Flowable<T> |
generate(Callable<S> initialState, BiFunction<S, Emitter<T>, S> generator, Consumer<? super S> disposeState)
Returns a cold, synchronous, stateful and backpressure-aware generator of values.
| ||||||||||
static <T, S> Flowable<T> |
generate(Callable<S> initialState, BiFunction<S, Emitter<T>, S> generator)
Returns a cold, synchronous, stateful and backpressure-aware generator of values.
| ||||||||||
static <T, S> Flowable<T> |
generate(Callable<S> initialState, BiConsumer<S, Emitter<T>> generator)
Returns a cold, synchronous, stateful and backpressure-aware generator of values.
| ||||||||||
static <T, S> Flowable<T> |
generate(Callable<S> initialState, BiConsumer<S, Emitter<T>> generator, Consumer<? super S> disposeState)
Returns a cold, synchronous, stateful and backpressure-aware generator of values.
| ||||||||||
static <T> Flowable<T> |
generate(Consumer<Emitter<T>> generator)
Returns a cold, synchronous, stateless and backpressure-aware generator of values.
| ||||||||||
final <K> Flowable<GroupedFlowable<K, T>> |
groupBy(Function<? super T, ? extends K> keySelector, boolean delayError)
Groups the items emitted by a
Publisher according to a specified criterion, and emits these
grouped items as GroupedFlowable s. | ||||||||||
final <K> Flowable<GroupedFlowable<K, T>> |
groupBy(Function<? super T, ? extends K> keySelector)
Groups the items emitted by a
Publisher according to a specified criterion, and emits these
grouped items as GroupedFlowable s. | ||||||||||
final <K, V> Flowable<GroupedFlowable<K, V>> |
groupBy(Function<? super T, ? extends K> keySelector, Function<? super T, ? extends V> valueSelector)
Groups the items emitted by a
Publisher according to a specified criterion, and emits these
grouped items as GroupedFlowable s. | ||||||||||
final <K, V> Flowable<GroupedFlowable<K, V>> |
groupBy(Function<? super T, ? extends K> keySelector, Function<? super T, ? extends V> valueSelector, boolean delayError)
Groups the items emitted by a
Publisher according to a specified criterion, and emits these
grouped items as GroupedFlowable s. | ||||||||||
final <K, V> Flowable<GroupedFlowable<K, V>> |
groupBy(Function<? super T, ? extends K> keySelector, Function<? super T, ? extends V> valueSelector, boolean delayError, int bufferSize)
Groups the items emitted by a
Publisher according to a specified criterion, and emits these
grouped items as GroupedFlowable s. | ||||||||||
final <TRight, TLeftEnd, TRightEnd, R> Flowable<R> |
groupJoin(Publisher<? extends TRight> other, Function<? super T, ? extends Publisher<TLeftEnd>> leftEnd, Function<? super TRight, ? extends Publisher<TRightEnd>> rightEnd, BiFunction<? super T, ? super Flowable<TRight>, ? extends R> resultSelector)
Returns a Flowable that correlates two Publishers when they overlap in time and groups the results.
| ||||||||||
final Flowable<T> |
hide()
Hides the identity of this Flowable and its Subscription.
| ||||||||||
final Completable |
ignoreElements()
Ignores all items emitted by the source Publisher and only calls
onComplete or onError . | ||||||||||
static Flowable<Long> |
interval(long period, TimeUnit unit, Scheduler scheduler)
Returns a Flowable that emits a sequential number every specified interval of time, on a
specified Scheduler.
| ||||||||||
static Flowable<Long> |
interval(long period, TimeUnit unit)
Returns a Flowable that emits a sequential number every specified interval of time.
| ||||||||||
static Flowable<Long> |
interval(long initialDelay, long period, TimeUnit unit, Scheduler scheduler)
Returns a Flowable that emits a
0L after the initialDelay and ever increasing numbers
after each period of time thereafter, on a specified Scheduler . | ||||||||||
static Flowable<Long> |
interval(long initialDelay, long period, TimeUnit unit)
Returns a Flowable that emits a
0L after the initialDelay and ever increasing numbers
after each period of time thereafter. | ||||||||||
static Flowable<Long> |
intervalRange(long start, long count, long initialDelay, long period, TimeUnit unit, Scheduler scheduler)
Signals a range of long values, the first after some initial delay and the rest periodically after.
| ||||||||||
static Flowable<Long> |
intervalRange(long start, long count, long initialDelay, long period, TimeUnit unit)
Signals a range of long values, the first after some initial delay and the rest periodically after.
| ||||||||||
final Single<Boolean> |
isEmpty()
Returns a Single that emits
true if the source Publisher is empty, otherwise false . | ||||||||||
final <TRight, TLeftEnd, TRightEnd, R> Flowable<R> |
join(Publisher<? extends TRight> other, Function<? super T, ? extends Publisher<TLeftEnd>> leftEnd, Function<? super TRight, ? extends Publisher<TRightEnd>> rightEnd, BiFunction<? super T, ? super TRight, ? extends R> resultSelector)
Correlates the items emitted by two Publishers based on overlapping durations.
| ||||||||||
static <T> Flowable<T> |
just(T item1, T item2, T item3, T item4, T item5, T item6)
Converts six items into a Publisher that emits those items.
| ||||||||||
static <T> Flowable<T> |
just(T item1, T item2)
Converts two items into a Publisher that emits those items.
| ||||||||||
static <T> Flowable<T> |
just(T item1, T item2, T item3, T item4)
Converts four items into a Publisher that emits those items.
| ||||||||||
static <T> Flowable<T> |
just(T item)
Returns a Flowable that emits a single item and then completes.
| ||||||||||
static <T> Flowable<T> |
just(T item1, T item2, T item3, T item4, T item5)
Converts five items into a Publisher that emits those items.
| ||||||||||
static <T> Flowable<T> |
just(T item1, T item2, T item3, T item4, T item5, T item6, T item7)
Converts seven items into a Publisher that emits those items.
| ||||||||||
static <T> Flowable<T> |
just(T item1, T item2, T item3, T item4, T item5, T item6, T item7, T item8)
Converts eight items into a Publisher that emits those items.
| ||||||||||
static <T> Flowable<T> |
just(T item1, T item2, T item3, T item4, T item5, T item6, T item7, T item8, T item9)
Converts nine items into a Publisher that emits those items.
| ||||||||||
static <T> Flowable<T> |
just(T item1, T item2, T item3, T item4, T item5, T item6, T item7, T item8, T item9, T item10)
Converts ten items into a Publisher that emits those items.
| ||||||||||
static <T> Flowable<T> |
just(T item1, T item2, T item3)
Converts three items into a Publisher that emits those items.
| ||||||||||
final Single<T> |
last(T defaultItem)
Returns a Single that emits only the last item emitted by this Flowable, or a default item
if this Flowable completes without emitting any items.
| ||||||||||
final Maybe<T> |
lastElement()
Returns a Maybe that emits the last item emitted by this Flowable or completes if
this Flowable is empty.
| ||||||||||
final Single<T> |
lastOrError()
Returns a Single that emits only the last item emitted by this Flowable or signals
a
NoSuchElementException if this Flowable is empty. | ||||||||||
final <R> Flowable<R> |
lift(FlowableOperator<? extends R, ? super T> lifter)
This method requires advanced knowledge about building operators; please consider
other standard composition methods first;
Lifts a function to the current Publisher and returns a new Publisher that when subscribed to will pass
the values of the current Publisher through the Operator function.
| ||||||||||
final <R> Flowable<R> |
map(Function<? super T, ? extends R> mapper)
Returns a Flowable that applies a specified function to each item emitted by the source Publisher and
emits the results of these function applications.
| ||||||||||
final Flowable<Notification<T>> |
materialize()
Returns a Flowable that represents all of the emissions and notifications from the source
Publisher into emissions marked with their original types within
Notification objects. | ||||||||||
static <T> Flowable<T> |
merge(Publisher<? extends Publisher<? extends T>> sources)
Flattens a Publisher that emits Publishers into a single Publisher that emits the items emitted by
those Publishers, without any transformation.
| ||||||||||
static <T> Flowable<T> |
merge(Publisher<? extends T> source1, Publisher<? extends T> source2, Publisher<? extends T> source3)
Flattens three Publishers into a single Publisher, without any transformation.
| ||||||||||
static <T> Flowable<T> |
merge(Publisher<? extends Publisher<? extends T>> sources, int maxConcurrency)
Flattens a Publisher that emits Publishers into a single Publisher that emits the items emitted by
those Publishers, without any transformation, while limiting the maximum number of concurrent
subscriptions to these Publishers.
| ||||||||||
static <T> Flowable<T> |
merge(Iterable<? extends Publisher<? extends T>> sources, int maxConcurrency)
Flattens an Iterable of Publishers into one Publisher, without any transformation, while limiting the
number of concurrent subscriptions to these Publishers.
| ||||||||||
static <T> Flowable<T> |
merge(Publisher<? extends T> source1, Publisher<? extends T> source2)
Flattens two Publishers into a single Publisher, without any transformation.
| ||||||||||
static <T> Flowable<T> |
merge(Iterable<? extends Publisher<? extends T>> sources)
Flattens an Iterable of Publishers into one Publisher, without any transformation.
| ||||||||||
static <T> Flowable<T> |
merge(Publisher<? extends T> source1, Publisher<? extends T> source2, Publisher<? extends T> source3, Publisher<? extends T> source4)
Flattens four Publishers into a single Publisher, without any transformation.
| ||||||||||
static <T> Flowable<T> |
merge(Iterable<? extends Publisher<? extends T>> sources, int maxConcurrency, int bufferSize)
Flattens an Iterable of Publishers into one Publisher, without any transformation, while limiting the
number of concurrent subscriptions to these Publishers.
| ||||||||||
static <T> Flowable<T> |
mergeArray(Publisher...<? extends T> sources)
Flattens an Array of Publishers into one Publisher, without any transformation.
| ||||||||||
static <T> Flowable<T> |
mergeArray(int maxConcurrency, int bufferSize, Publisher...<? extends T> sources)
Flattens an Iterable of Publishers into one Publisher, without any transformation, while limiting the
number of concurrent subscriptions to these Publishers.
| ||||||||||
static <T> Flowable<T> |
mergeArrayDelayError(int maxConcurrency, int bufferSize, Publisher...<? extends T> sources)
Flattens an array of Publishers into one Publisher, in a way that allows a Subscriber to receive all
successfully emitted items from each of the source Publishers without being interrupted by an error
notification from one of them, while limiting the number of concurrent subscriptions to these Publishers.
| ||||||||||
static <T> Flowable<T> |
mergeArrayDelayError(Publisher...<? extends T> sources)
Flattens an array of Publishers into one Flowable, in a way that allows a Subscriber to receive all
successfully emitted items from each of the source Publishers without being interrupted by an error
notification from one of them.
| ||||||||||
static <T> Flowable<T> |
mergeDelayError(Publisher<? extends T> source1, Publisher<? extends T> source2, Publisher<? extends T> source3)
Flattens three Publishers into one Publisher, in a way that allows a Subscriber to receive all
successfully emitted items from all of the source Publishers without being interrupted by an error
notification from one of them.
| ||||||||||
static <T> Flowable<T> |
mergeDelayError(Publisher<? extends Publisher<? extends T>> sources, int maxConcurrency)
Flattens a Publisher that emits Publishers into one Publisher, in a way that allows a Subscriber to
receive all successfully emitted items from all of the source Publishers without being interrupted by
an error notification from one of them, while limiting the
number of concurrent subscriptions to these Publishers.
| ||||||||||
static <T> Flowable<T> |
mergeDelayError(Publisher<? extends Publisher<? extends T>> sources)
Flattens a Publisher that emits Publishers into one Publisher, in a way that allows a Subscriber to
receive all successfully emitted items from all of the source Publishers without being interrupted by
an error notification from one of them.
| ||||||||||
static <T> Flowable<T> |
mergeDelayError(Iterable<? extends Publisher<? extends T>> sources, int maxConcurrency, int bufferSize)
Flattens an Iterable of Publishers into one Publisher, in a way that allows a Subscriber to receive all
successfully emitted items from each of the source Publishers without being interrupted by an error
notification from one of them, while limiting the number of concurrent subscriptions to these Publishers.
| ||||||||||
static <T> Flowable<T> |
mergeDelayError(Publisher<? extends T> source1, Publisher<? extends T> source2)
Flattens two Publishers into one Publisher, in a way that allows a Subscriber to receive all
successfully emitted items from each of the source Publishers without being interrupted by an error
notification from one of them.
| ||||||||||
static <T> Flowable<T> |
mergeDelayError(Iterable<? extends Publisher<? extends T>> sources, int maxConcurrency)
Flattens an Iterable of Publishers into one Publisher, in a way that allows a Subscriber to receive all
successfully emitted items from each of the source Publishers without being interrupted by an error
notification from one of them, while limiting the number of concurrent subscriptions to these Publishers.
| ||||||||||
static <T> Flowable<T> |
mergeDelayError(Iterable<? extends Publisher<? extends T>> sources)
Flattens an Iterable of Publishers into one Publisher, in a way that allows a Subscriber to receive all
successfully emitted items from each of the source Publishers without being interrupted by an error
notification from one of them.
| ||||||||||
static <T> Flowable<T> |
mergeDelayError(Publisher<? extends T> source1, Publisher<? extends T> source2, Publisher<? extends T> source3, Publisher<? extends T> source4)
Flattens four Publishers into one Publisher, in a way that allows a Subscriber to receive all
successfully emitted items from all of the source Publishers without being interrupted by an error
notification from one of them.
| ||||||||||
final Flowable<T> |
mergeWith(Publisher<? extends T> other)
Flattens this and another Publisher into a single Publisher, without any transformation.
| ||||||||||
static <T> Flowable<T> |
never()
Returns a Flowable that never sends any items or notifications to a Subscriber.
| ||||||||||
final Flowable<T> |
observeOn(Scheduler scheduler, boolean delayError)
Modifies a Publisher to perform its emissions and notifications on a specified
Scheduler ,
asynchronously with a bounded buffer and optionally delays onError notifications. | ||||||||||
final Flowable<T> |
observeOn(Scheduler scheduler)
Modifies a Publisher to perform its emissions and notifications on a specified
Scheduler ,
asynchronously with a bounded buffer of bufferSize() slots. | ||||||||||
final Flowable<T> |
observeOn(Scheduler scheduler, boolean delayError, int bufferSize)
Modifies a Publisher to perform its emissions and notifications on a specified
Scheduler ,
asynchronously with a bounded buffer of configurable size and optionally delays onError notifications. | ||||||||||
final <U> Flowable<U> |
ofType(Class<U> clazz)
Filters the items emitted by a Publisher, only emitting those of the specified type.
| ||||||||||
final Flowable<T> |
onBackpressureBuffer(int capacity, boolean delayError, boolean unbounded)
Instructs a Publisher that is emitting items faster than its Subscriber can consume them to buffer up to
a given amount of items until they can be emitted.
| ||||||||||
final Flowable<T> |
onBackpressureBuffer(int capacity)
Instructs a Publisher that is emitting items faster than its Subscriber can consume them to buffer up to
a given amount of items until they can be emitted.
| ||||||||||
final Flowable<T> |
onBackpressureBuffer(long capacity, Action onOverflow, BackpressureOverflowStrategy overflowStrategy)
Instructs a Publisher that is emitting items faster than its Subscriber can consume them to buffer up to
a given amount of items until they can be emitted.
| ||||||||||
final Flowable<T> |
onBackpressureBuffer(boolean delayError)
Instructs a Publisher that is emitting items faster than its Subscriber can consume them to buffer these
items indefinitely until they can be emitted.
| ||||||||||
final Flowable<T> |
onBackpressureBuffer(int capacity, boolean delayError, boolean unbounded, Action onOverflow)
Instructs a Publisher that is emitting items faster than its Subscriber can consume them to buffer up to
a given amount of items until they can be emitted.
| ||||||||||
final Flowable<T> |
onBackpressureBuffer(int capacity, Action onOverflow)
Instructs a Publisher that is emitting items faster than its Subscriber can consume them to buffer up to
a given amount of items until they can be emitted.
| ||||||||||
final Flowable<T> |
onBackpressureBuffer(int capacity, boolean delayError)
Instructs a Publisher that is emitting items faster than its Subscriber can consume them to buffer up to
a given amount of items until they can be emitted.
| ||||||||||
final Flowable<T> |
onBackpressureBuffer()
Instructs a Publisher that is emitting items faster than its Subscriber can consume them to buffer these
items indefinitely until they can be emitted.
| ||||||||||
final Flowable<T> |
onBackpressureDrop()
Instructs a Publisher that is emitting items faster than its Subscriber can consume them to discard,
rather than emit, those items that its Subscriber is not prepared to observe.
| ||||||||||
final Flowable<T> |
onBackpressureDrop(Consumer<? super T> onDrop)
Instructs a Publisher that is emitting items faster than its Subscriber can consume them to discard,
rather than emit, those items that its Subscriber is not prepared to observe.
| ||||||||||
final Flowable<T> |
onBackpressureLatest()
Instructs a Publisher that is emitting items faster than its Subscriber can consume them to
hold onto the latest value and emit that on request.
| ||||||||||
final Flowable<T> |
onErrorResumeNext(Publisher<? extends T> next)
Instructs a Publisher to pass control to another Publisher rather than invoking
onError if it encounters an error. | ||||||||||
final Flowable<T> |
onErrorResumeNext(Function<? super Throwable, ? extends Publisher<? extends T>> resumeFunction)
Instructs a Publisher to pass control to another Publisher rather than invoking
onError if it encounters an error. | ||||||||||
final Flowable<T> |
onErrorReturn(Function<? super Throwable, ? extends T> valueSupplier)
Instructs a Publisher to emit an item (returned by a specified function) rather than invoking
onError if it encounters an error. | ||||||||||
final Flowable<T> |
onErrorReturnItem(T item)
Instructs a Publisher to emit an item (returned by a specified function) rather than invoking
onError if it encounters an error. | ||||||||||
final Flowable<T> | onExceptionResumeNext(Publisher<? extends T> next) | ||||||||||
final Flowable<T> |
onTerminateDetach()
Nulls out references to the upstream producer and downstream Subscriber if
the sequence is terminated or downstream cancels.
| ||||||||||
final ParallelFlowable<T> |
parallel()
Parallelizes the flow by creating multiple 'rails' (equal to the number of CPUs)
and dispatches the upstream items to them in a round-robin fashion.
| ||||||||||
final ParallelFlowable<T> |
parallel(int parallelism, int prefetch)
Parallelizes the flow by creating the specified number of 'rails'
and dispatches the upstream items to them in a round-robin fashion and
uses the defined per-'rail' prefetch amount.
| ||||||||||
final ParallelFlowable<T> |
parallel(int parallelism)
Parallelizes the flow by creating the specified number of 'rails'
and dispatches the upstream items to them in a round-robin fashion.
| ||||||||||
final ConnectableFlowable<T> |
publish()
Returns a
ConnectableFlowable , which is a variety of Publisher that waits until its
connect method is called before it begins emitting items to those
Subscribers that have subscribed to it. | ||||||||||
final <R> Flowable<R> |
publish(Function<? super Flowable<T>, ? extends Publisher<? extends R>> selector, int prefetch)
Returns a Flowable that emits the results of invoking a specified selector on items emitted by a
ConnectableFlowable that shares a single subscription to the underlying sequence. | ||||||||||
final ConnectableFlowable<T> |
publish(int bufferSize)
Returns a
ConnectableFlowable , which is a variety of Publisher that waits until its
connect method is called before it begins emitting items to those
Subscribers that have subscribed to it. | ||||||||||
final <R> Flowable<R> |
publish(Function<? super Flowable<T>, ? extends Publisher<R>> selector)
Returns a Flowable that emits the results of invoking a specified selector on items emitted by a
ConnectableFlowable that shares a single subscription to the underlying sequence. | ||||||||||
static Flowable<Integer> |
range(int start, int count)
Returns a Flowable that emits a sequence of Integers within a specified range.
| ||||||||||
static Flowable<Long> |
rangeLong(long start, long count)
Returns a Flowable that emits a sequence of Longs within a specified range.
| ||||||||||
final Flowable<T> |
rebatchRequests(int n)
Requests
n initially from the upstream and then 75% of n subsequently
after 75% of n values have been emitted to the downstream. | ||||||||||
final Maybe<T> |
reduce(BiFunction<T, T, T> reducer)
Returns a Maybe that applies a specified accumulator function to the first item emitted by a source
Publisher, then feeds the result of that function along with the second item emitted by the source
Publisher into the same function, and so on until all items have been emitted by the source Publisher,
and emits the final result from the final call to your function as its sole item.
| ||||||||||
final <R> Single<R> |
reduce(R seed, BiFunction<R, ? super T, R> reducer)
Returns a Single that applies a specified accumulator function to the first item emitted by a source
Publisher and a specified seed value, then feeds the result of that function along with the second item
emitted by a Publisher into the same function, and so on until all items have been emitted by the
source Publisher, emitting the final result from the final call to your function as its sole item.
| ||||||||||
final <R> Single<R> |
reduceWith(Callable<R> seedSupplier, BiFunction<R, ? super T, R> reducer)
Returns a Single that applies a specified accumulator function to the first item emitted by a source
Publisher and a seed value derived from calling a specified seedSupplier, then feeds the result
of that function along with the second item emitted by a Publisher into the same function, and so on until
all items have been emitted by the source Publisher, emitting the final result from the final call to your
function as its sole item.
| ||||||||||
final Flowable<T> |
repeat()
Returns a Flowable that repeats the sequence of items emitted by the source Publisher indefinitely.
| ||||||||||
final Flowable<T> |
repeat(long times)
Returns a Flowable that repeats the sequence of items emitted by the source Publisher at most
count times. | ||||||||||
final Flowable<T> |
repeatUntil(BooleanSupplier stop)
Returns a Flowable that repeats the sequence of items emitted by the source Publisher until
the provided stop function returns true.
| ||||||||||
final Flowable<T> |
repeatWhen(Function<? super Flowable<Object>, ? extends Publisher<?>> handler)
Returns a Flowable that emits the same values as the source Publisher with the exception of an
onComplete . | ||||||||||
final <R> Flowable<R> |
replay(Function<? super Flowable<T>, ? extends Publisher<R>> selector, Scheduler scheduler)
Returns a Flowable that emits items that are the results of invoking a specified selector on items
emitted by a
ConnectableFlowable that shares a single subscription to the source Publisher. | ||||||||||
final <R> Flowable<R> |
replay(Function<? super Flowable<T>, ? extends Publisher<R>> selector, int bufferSize)
Returns a Flowable that emits items that are the results of invoking a specified selector on items
emitted by a
ConnectableFlowable that shares a single subscription to the source Publisher,
replaying bufferSize notifications. | ||||||||||
final <R> Flowable<R> |
replay(Function<? super Flowable<T>, ? extends Publisher<R>> selector, int bufferSize, Scheduler scheduler)
Returns a Flowable that emits items that are the results of invoking a specified selector on items
emitted by a
ConnectableFlowable that shares a single subscription to the source Publisher,
replaying a maximum of bufferSize items. | ||||||||||
final ConnectableFlowable<T> |
replay(int bufferSize, long time, TimeUnit unit)
Returns a
ConnectableFlowable that shares a single subscription to the source Publisher and
replays at most bufferSize items that were emitted during a specified time window. | ||||||||||
final ConnectableFlowable<T> |
replay(int bufferSize, long time, TimeUnit unit, Scheduler scheduler)
Returns a
ConnectableFlowable that shares a single subscription to the source Publisher and
that replays a maximum of bufferSize items that are emitted within a specified time window. | ||||||||||
final ConnectableFlowable<T> |
replay(int bufferSize)
Returns a
ConnectableFlowable that shares a single subscription to the source Publisher that
replays at most bufferSize items emitted by that Publisher. | ||||||||||
final ConnectableFlowable<T> |
replay()
Returns a
ConnectableFlowable that shares a single subscription to the underlying Publisher
that will replay all of its items and notifications to any future Subscriber. | ||||||||||
final <R> Flowable<R> |
replay(Function<? super Flowable<T>, ? extends Publisher<R>> selector)
Returns a Flowable that emits items that are the results of invoking a specified selector on the items
emitted by a
ConnectableFlowable that shares a single subscription to the source Publisher. | ||||||||||
final <R> Flowable<R> |
replay(Function<? super Flowable<T>, ? extends Publisher<R>> selector, int bufferSize, long time, TimeUnit unit)
Returns a Flowable that emits items that are the results of invoking a specified selector on items
emitted by a
ConnectableFlowable that shares a single subscription to the source Publisher,
replaying no more than bufferSize items that were emitted within a specified time window. | ||||||||||
final <R> Flowable<R> |
replay(Function<? super Flowable<T>, ? extends Publisher<R>> selector, long time, TimeUnit unit, Scheduler scheduler)
Returns a Flowable that emits items that are the results of invoking a specified selector on items
emitted by a
ConnectableFlowable that shares a single subscription to the source Publisher,
replaying all items that were emitted within a specified time window. | ||||||||||
final ConnectableFlowable<T> |
replay(long time, TimeUnit unit)
Returns a
ConnectableFlowable that shares a single subscription to the source Publisher and
replays all items emitted by that Publisher within a specified time window. | ||||||||||
final ConnectableFlowable<T> |
replay(Scheduler scheduler)
Returns a
ConnectableFlowable that shares a single subscription to the source Publisher that
will replay all of its items and notifications to any future Subscriber on the given
Scheduler . | ||||||||||
final ConnectableFlowable<T> |
replay(int bufferSize, Scheduler scheduler)
Returns a
ConnectableFlowable that shares a single subscription to the source Publisher and
replays at most bufferSize items emitted by that Publisher. | ||||||||||
final ConnectableFlowable<T> |
replay(long time, TimeUnit unit, Scheduler scheduler)
Returns a
ConnectableFlowable that shares a single subscription to the source Publisher and
replays all items emitted by that Publisher within a specified time window. | ||||||||||
final <R> Flowable<R> |
replay(Function<? super Flowable<T>, ? extends Publisher<R>> selector, long time, TimeUnit unit)
Returns a Flowable that emits items that are the results of invoking a specified selector on items
emitted by a
ConnectableFlowable that shares a single subscription to the source Publisher,
replaying all items that were emitted within a specified time window. | ||||||||||
final <R> Flowable<R> |
replay(Function<? super Flowable<T>, ? extends Publisher<R>> selector, int bufferSize, long time, TimeUnit unit, Scheduler scheduler)
Returns a Flowable that emits items that are the results of invoking a specified selector on items
emitted by a
ConnectableFlowable that shares a single subscription to the source Publisher,
replaying no more than bufferSize items that were emitted within a specified time window. | ||||||||||
final Flowable<T> |
retry()
Returns a Flowable that mirrors the source Publisher, resubscribing to it if it calls
onError
(infinite retry count). | ||||||||||
final Flowable<T> |
retry(long count)
Returns a Flowable that mirrors the source Publisher, resubscribing to it if it calls
onError
up to a specified number of retries. | ||||||||||
final Flowable<T> |
retry(long times, Predicate<? super Throwable> predicate)
Retries at most times or until the predicate returns false, whichever happens first.
| ||||||||||
final Flowable<T> |
retry(BiPredicate<? super Integer, ? super Throwable> predicate)
Returns a Flowable that mirrors the source Publisher, resubscribing to it if it calls
onError
and the predicate returns true for that specific exception and retry count. | ||||||||||
final Flowable<T> |
retry(Predicate<? super Throwable> predicate)
Retries the current Flowable if the predicate returns true.
| ||||||||||
final Flowable<T> |
retryUntil(BooleanSupplier stop)
Retries until the given stop function returns true.
| ||||||||||
final Flowable<T> |
retryWhen(Function<? super Flowable<Throwable>, ? extends Publisher<?>> handler)
Returns a Flowable that emits the same values as the source Publisher with the exception of an
onError . | ||||||||||
final void |
safeSubscribe(Subscriber<? super T> s)
Subscribes to the current Flowable and wraps the given Subscriber into a SafeSubscriber
(if not already a SafeSubscriber) that
deals with exceptions thrown by a misbehaving Subscriber (that doesn't follow the
Reactive-Streams specification).
| ||||||||||
final Flowable<T> |
sample(long period, TimeUnit unit, Scheduler scheduler)
Returns a Flowable that emits the most recently emitted item (if any) emitted by the source Publisher
within periodic time intervals, where the intervals are defined on a particular Scheduler.
| ||||||||||
final Flowable<T> |
sample(long period, TimeUnit unit)
Returns a Flowable that emits the most recently emitted item (if any) emitted by the source Publisher
within periodic time intervals.
| ||||||||||
final <U> Flowable<T> |
sample(Publisher<U> sampler)
Returns a Flowable that, when the specified
sampler Publisher emits an item or completes,
emits the most recently emitted item (if any) emitted by the source Publisher since the previous
emission from the sampler Publisher. | ||||||||||
final Flowable<T> |
sample(long period, TimeUnit unit, boolean emitLast)
Returns a Flowable that emits the most recently emitted item (if any) emitted by the source Publisher
within periodic time intervals and optionally emit the very last upstream item when the upstream completes.
| ||||||||||
final Flowable<T> |
sample(long period, TimeUnit unit, Scheduler scheduler, boolean emitLast)
Returns a Flowable that emits the most recently emitted item (if any) emitted by the source Publisher
within periodic time intervals, where the intervals are defined on a particular Scheduler
and optionally emit the very last upstream item when the upstream completes.
| ||||||||||
final <U> Flowable<T> |
sample(Publisher<U> sampler, boolean emitLast)
Returns a Flowable that, when the specified
sampler Publisher emits an item or completes,
emits the most recently emitted item (if any) emitted by the source Publisher since the previous
emission from the sampler Publisher
and optionally emit the very last upstream item when the upstream or other Publisher complete. | ||||||||||
final <R> Flowable<R> |
scan(R initialValue, BiFunction<R, ? super T, R> accumulator)
Returns a Flowable that applies a specified accumulator function to the first item emitted by a source
Publisher and a seed value, then feeds the result of that function along with the second item emitted by
the source Publisher into the same function, and so on until all items have been emitted by the source
Publisher, emitting the result of each of these iterations.
| ||||||||||
final Flowable<T> |
scan(BiFunction<T, T, T> accumulator)
Returns a Flowable that applies a specified accumulator function to the first item emitted by a source
Publisher, then feeds the result of that function along with the second item emitted by the source
Publisher into the same function, and so on until all items have been emitted by the source Publisher,
emitting the result of each of these iterations.
| ||||||||||
final <R> Flowable<R> |
scanWith(Callable<R> seedSupplier, BiFunction<R, ? super T, R> accumulator)
Returns a Flowable that applies a specified accumulator function to the first item emitted by a source
Publisher and a seed value, then feeds the result of that function along with the second item emitted by
the source Publisher into the same function, and so on until all items have been emitted by the source
Publisher, emitting the result of each of these iterations.
| ||||||||||
static <T> Single<Boolean> |
sequenceEqual(Publisher<? extends T> source1, Publisher<? extends T> source2, BiPredicate<? super T, ? super T> isEqual, int bufferSize)
Returns a Single that emits a Boolean value that indicates whether two Publisher sequences are the
same by comparing the items emitted by each Publisher pairwise based on the results of a specified
equality function.
| ||||||||||
static <T> Single<Boolean> |
sequenceEqual(Publisher<? extends T> source1, Publisher<? extends T> source2, int bufferSize)
Returns a Single that emits a Boolean value that indicates whether two Publisher sequences are the
same by comparing the items emitted by each Publisher pairwise.
| ||||||||||
static <T> Single<Boolean> |
sequenceEqual(Publisher<? extends T> source1, Publisher<? extends T> source2)
Returns a Single that emits a Boolean value that indicates whether two Publisher sequences are the
same by comparing the items emitted by each Publisher pairwise.
| ||||||||||
static <T> Single<Boolean> |
sequenceEqual(Publisher<? extends T> source1, Publisher<? extends T> source2, BiPredicate<? super T, ? super T> isEqual)
Returns a Single that emits a Boolean value that indicates whether two Publisher sequences are the
same by comparing the items emitted by each Publisher pairwise based on the results of a specified
equality function.
| ||||||||||
final Flowable<T> |
serialize()
Forces a Publisher's emissions and notifications to be serialized and for it to obey
the Publisher contract in other ways.
| ||||||||||
final Flowable<T> |
share()
Returns a new Publisher that multicasts (shares) the original Publisher.
| ||||||||||
final Single<T> |
single(T defaultItem)
Returns a Single that emits the single item emitted by the source Publisher, if that Publisher
emits only a single item, or a default item if the source Publisher emits no items.
| ||||||||||
final Maybe<T> |
singleElement()
Returns a Maybe that completes if this Flowable is empty, signals one item if this Flowable
signals exactly one item or signals an
IllegalArgumentException if this Flowable signals
more than one item. | ||||||||||
final Single<T> |
singleOrError()
Returns a Single that emits the single item emitted by this Flowable, if this Flowable
emits only a single item, otherwise
if this Flowable completes without emitting any items a
NoSuchElementException will be signalled and
if this Flowable emits more than one item, an IllegalArgumentException will be signalled. | ||||||||||
final Flowable<T> |
skip(long count)
Returns a Flowable that skips the first
count items emitted by the source Publisher and emits
the remainder. | ||||||||||
final Flowable<T> |
skip(long time, TimeUnit unit, Scheduler scheduler)
Returns a Flowable that skips values emitted by the source Publisher before a specified time window
on a specified
Scheduler elapses. | ||||||||||
final Flowable<T> |
skip(long time, TimeUnit unit)
Returns a Flowable that skips values emitted by the source Publisher before a specified time window
elapses.
| ||||||||||
final Flowable<T> |
skipLast(int count)
Returns a Flowable that drops a specified number of items from the end of the sequence emitted by the
source Publisher.
| ||||||||||
final Flowable<T> |
skipLast(long time, TimeUnit unit)
Returns a Flowable that drops items emitted by the source Publisher during a specified time window
before the source completes.
| ||||||||||
final Flowable<T> |
skipLast(long time, TimeUnit unit, boolean delayError)
Returns a Flowable that drops items emitted by the source Publisher during a specified time window
before the source completes.
| ||||||||||
final Flowable<T> |
skipLast(long time, TimeUnit unit, Scheduler scheduler)
Returns a Flowable that drops items emitted by the source Publisher during a specified time window
(defined on a specified scheduler) before the source completes.
| ||||||||||
final Flowable<T> |
skipLast(long time, TimeUnit unit, Scheduler scheduler, boolean delayError, int bufferSize)
Returns a Flowable that drops items emitted by the source Publisher during a specified time window
(defined on a specified scheduler) before the source completes.
| ||||||||||
final Flowable<T> |
skipLast(long time, TimeUnit unit, Scheduler scheduler, boolean delayError)
Returns a Flowable that drops items emitted by the source Publisher during a specified time window
(defined on a specified scheduler) before the source completes.
| ||||||||||
final <U> Flowable<T> |
skipUntil(Publisher<U> other)
Returns a Flowable that skips items emitted by the source Publisher until a second Publisher emits
an item.
| ||||||||||
final Flowable<T> |
skipWhile(Predicate<? super T> predicate)
Returns a Flowable that skips all items emitted by the source Publisher as long as a specified
condition holds true, but emits all further source items as soon as the condition becomes false.
| ||||||||||
final Flowable<T> |
sorted()
Returns a Flowable that emits the events emitted by source Publisher, in a
sorted order.
| ||||||||||
final Flowable<T> |
sorted(Comparator<? super T> sortFunction)
Returns a Flowable that emits the events emitted by source Publisher, in a
sorted order based on a specified comparison function.
| ||||||||||
final Flowable<T> |
startWith(Publisher<? extends T> other)
Returns a Flowable that emits the items in a specified Publisher before it begins to emit
items emitted by the source Publisher.
| ||||||||||
final Flowable<T> |
startWith(Iterable<? extends T> items)
Returns a Flowable that emits the items in a specified
Iterable before it begins to emit items
emitted by the source Publisher. | ||||||||||
final Flowable<T> |
startWith(T value)
Returns a Flowable that emits a specified item before it begins to emit items emitted by the source
Publisher.
| ||||||||||
final Flowable<T> |
startWithArray(T... items)
Returns a Flowable that emits the specified items before it begins to emit items emitted by the source
Publisher.
| ||||||||||
final void |
subscribe(FlowableSubscriber<? super T> s)
Establish a connection between this Flowable and the given FlowableSubscriber and
start streaming events based on the demand of the FlowableSubscriber.
| ||||||||||
final void | subscribe(Subscriber<? super T> s) | ||||||||||
final Disposable |
subscribe(Consumer<? super T> onNext, Consumer<? super Throwable> onError, Action onComplete)
Subscribes to a Publisher and provides callbacks to handle the items it emits and any error or
completion notification it issues.
| ||||||||||
final Disposable |
subscribe(Consumer<? super T> onNext, Consumer<? super Throwable> onError, Action onComplete, Consumer<? super Subscription> onSubscribe)
Subscribes to a Publisher and provides callbacks to handle the items it emits and any error or
completion notification it issues.
| ||||||||||
final Disposable |
subscribe()
Subscribes to a Publisher and ignores
onNext and onComplete emissions. | ||||||||||
final Disposable |
subscribe(Consumer<? super T> onNext)
Subscribes to a Publisher and provides a callback to handle the items it emits.
| ||||||||||
final Disposable |
subscribe(Consumer<? super T> onNext, Consumer<? super Throwable> onError)
Subscribes to a Publisher and provides callbacks to handle the items it emits and any error
notification it issues.
| ||||||||||
final Flowable<T> |
subscribeOn(Scheduler scheduler)
Asynchronously subscribes Subscribers to this Publisher on the specified
Scheduler . | ||||||||||
final Flowable<T> | subscribeOn(Scheduler scheduler, boolean requestOn) | ||||||||||
final <E extends Subscriber<? super T>> E |
subscribeWith(E subscriber)
Subscribes a given Subscriber (subclass) to this Flowable and returns the given
Subscriber as is.
| ||||||||||
final Flowable<T> |
switchIfEmpty(Publisher<? extends T> other)
Returns a Flowable that emits the items emitted by the source Publisher or the items of an alternate
Publisher if the source Publisher is empty.
| ||||||||||
final <R> Flowable<R> |
switchMap(Function<? super T, ? extends Publisher<? extends R>> mapper, int bufferSize)
Returns a new Publisher by applying a function that you supply to each item emitted by the source
Publisher that returns a Publisher, and then emitting the items emitted by the most recently emitted
of these Publishers.
| ||||||||||
final <R> Flowable<R> |
switchMap(Function<? super T, ? extends Publisher<? extends R>> mapper)
Returns a new Publisher by applying a function that you supply to each item emitted by the source
Publisher that returns a Publisher, and then emitting the items emitted by the most recently emitted
of these Publishers.
| ||||||||||
final <R> Flowable<R> |
switchMapDelayError(Function<? super T, ? extends Publisher<? extends R>> mapper)
Returns a new Publisher by applying a function that you supply to each item emitted by the source
Publisher that returns a Publisher, and then emitting the items emitted by the most recently emitted
of these Publishers and delays any error until all Publishers terminate.
| ||||||||||
final <R> Flowable<R> |
switchMapDelayError(Function<? super T, ? extends Publisher<? extends R>> mapper, int bufferSize)
Returns a new Publisher by applying a function that you supply to each item emitted by the source
Publisher that returns a Publisher, and then emitting the items emitted by the most recently emitted
of these Publishers and delays any error until all Publishers terminate.
| ||||||||||
static <T> Flowable<T> |
switchOnNext(Publisher<? extends Publisher<? extends T>> sources, int bufferSize)
Converts a Publisher that emits Publishers into a Publisher that emits the items emitted by the
most recently emitted of those Publishers.
| ||||||||||
static <T> Flowable<T> |
switchOnNext(Publisher<? extends Publisher<? extends T>> sources)
Converts a Publisher that emits Publishers into a Publisher that emits the items emitted by the
most recently emitted of those Publishers.
| ||||||||||
static <T> Flowable<T> |
switchOnNextDelayError(Publisher<? extends Publisher<? extends T>> sources, int prefetch)
Converts a Publisher that emits Publishers into a Publisher that emits the items emitted by the
most recently emitted of those Publishers and delays any exception until all Publishers terminate.
| ||||||||||
static <T> Flowable<T> |
switchOnNextDelayError(Publisher<? extends Publisher<? extends T>> sources)
Converts a Publisher that emits Publishers into a Publisher that emits the items emitted by the
most recently emitted of those Publishers and delays any exception until all Publishers terminate.
| ||||||||||
final Flowable<T> |
take(long time, TimeUnit unit)
Returns a Flowable that emits those items emitted by source Publisher before a specified time runs
out.
| ||||||||||
final Flowable<T> |
take(long time, TimeUnit unit, Scheduler scheduler)
Returns a Flowable that emits those items emitted by source Publisher before a specified time (on a
specified Scheduler) runs out.
| ||||||||||
final Flowable<T> |
take(long count)
Returns a Flowable that emits only the first
count items emitted by the source Publisher. | ||||||||||
final Flowable<T> |
takeLast(long time, TimeUnit unit, boolean delayError)
Returns a Flowable that emits the items from the source Publisher that were emitted in a specified
window of time before the Publisher completed.
| ||||||||||
final Flowable<T> |
takeLast(long count, long time, TimeUnit unit, Scheduler scheduler, boolean delayError, int bufferSize)
Returns a Flowable that emits at most a specified number of items from the source Publisher that were
emitted in a specified window of time before the Publisher completed, where the timing information is
provided by a given Scheduler.
| ||||||||||
final Flowable<T> |
takeLast(long time, TimeUnit unit, Scheduler scheduler)
Returns a Flowable that emits the items from the source Publisher that were emitted in a specified
window of time before the Publisher completed, where the timing information is provided by a specified
Scheduler.
| ||||||||||
final Flowable<T> |
takeLast(long time, TimeUnit unit, Scheduler scheduler, boolean delayError)
Returns a Flowable that emits the items from the source Publisher that were emitted in a specified
window of time before the Publisher completed, where the timing information is provided by a specified
Scheduler.
| ||||||||||
final Flowable<T> |
takeLast(int count)
Returns a Flowable that emits at most the last
count items emitted by the source Publisher. | ||||||||||
final Flowable<T> |
takeLast(long time, TimeUnit unit)
Returns a Flowable that emits the items from the source Publisher that were emitted in a specified
window of time before the Publisher completed.
| ||||||||||
final Flowable<T> |
takeLast(long count, long time, TimeUnit unit)
Returns a Flowable that emits at most a specified number of items from the source Publisher that were
emitted in a specified window of time before the Publisher completed.
| ||||||||||
final Flowable<T> |
takeLast(long count, long time, TimeUnit unit, Scheduler scheduler)
Returns a Flowable that emits at most a specified number of items from the source Publisher that were
emitted in a specified window of time before the Publisher completed, where the timing information is
provided by a given Scheduler.
| ||||||||||
final Flowable<T> |
takeLast(long time, TimeUnit unit, Scheduler scheduler, boolean delayError, int bufferSize)
Returns a Flowable that emits the items from the source Publisher that were emitted in a specified
window of time before the Publisher completed, where the timing information is provided by a specified
Scheduler.
| ||||||||||
final <U> Flowable<T> |
takeUntil(Publisher<U> other)
Returns a Flowable that emits the items emitted by the source Publisher until a second Publisher
emits an item.
| ||||||||||
final Flowable<T> |
takeUntil(Predicate<? super T> stopPredicate)
Returns a Flowable that emits items emitted by the source Publisher, checks the specified predicate
for each item, and then completes when the condition is satisfied.
| ||||||||||
final Flowable<T> |
takeWhile(Predicate<? super T> predicate)
Returns a Flowable that emits items emitted by the source Publisher so long as each item satisfied a
specified condition, and then completes as soon as this condition is not satisfied.
| ||||||||||
final TestSubscriber<T> |
test(long initialRequest)
Creates a TestSubscriber with the given initial request amount and subscribes
it to this Flowable.
| ||||||||||
final TestSubscriber<T> |
test()
Creates a TestSubscriber that requests Long.MAX_VALUE and subscribes
it to this Flowable.
| ||||||||||
final TestSubscriber<T> |
test(long initialRequest, boolean cancel)
Creates a TestSubscriber with the given initial request amount,
optionally cancels it before the subscription and subscribes
it to this Flowable.
| ||||||||||
final Flowable<T> |
throttleFirst(long windowDuration, TimeUnit unit)
Returns a Flowable that emits only the first item emitted by the source Publisher during sequential
time windows of a specified duration.
| ||||||||||
final Flowable<T> |
throttleFirst(long skipDuration, TimeUnit unit, Scheduler scheduler)
Returns a Flowable that emits only the first item emitted by the source Publisher during sequential
time windows of a specified duration, where the windows are managed by a specified Scheduler.
| ||||||||||
final Flowable<T> |
throttleLast(long intervalDuration, TimeUnit unit, Scheduler scheduler)
Returns a Flowable that emits only the last item emitted by the source Publisher during sequential
time windows of a specified duration, where the duration is governed by a specified Scheduler.
| ||||||||||
final Flowable<T> |
throttleLast(long intervalDuration, TimeUnit unit)
Returns a Flowable that emits only the last item emitted by the source Publisher during sequential
time windows of a specified duration.
| ||||||||||
final Flowable<T> |
throttleWithTimeout(long timeout, TimeUnit unit, Scheduler scheduler)
Returns a Flowable that only emits those items emitted by the source Publisher that are not followed
by another emitted item within a specified time window, where the time window is governed by a specified
Scheduler.
| ||||||||||
final Flowable<T> |
throttleWithTimeout(long timeout, TimeUnit unit)
Returns a Flowable that only emits those items emitted by the source Publisher that are not followed
by another emitted item within a specified time window.
| ||||||||||
final Flowable<Timed<T>> |
timeInterval(Scheduler scheduler)
Returns a Flowable that emits records of the time interval between consecutive items emitted by the
source Publisher, where this interval is computed on a specified Scheduler.
| ||||||||||
final Flowable<Timed<T>> |
timeInterval(TimeUnit unit, Scheduler scheduler)
Returns a Flowable that emits records of the time interval between consecutive items emitted by the
source Publisher, where this interval is computed on a specified Scheduler.
| ||||||||||
final Flowable<Timed<T>> |
timeInterval()
Returns a Flowable that emits records of the time interval between consecutive items emitted by the
source Publisher.
| ||||||||||
final Flowable<Timed<T>> |
timeInterval(TimeUnit unit)
Returns a Flowable that emits records of the time interval between consecutive items emitted by the
source Publisher.
| ||||||||||
final <V> Flowable<T> |
timeout(Function<? super T, ? extends Publisher<V>> itemTimeoutIndicator)
Returns a Flowable that mirrors the source Publisher, but notifies Subscribers of a
TimeoutException if an item emitted by the source Publisher doesn't arrive within a window of
time after the emission of the previous item, where that period of time is measured by a Publisher that
is a function of the previous item. | ||||||||||
final <U, V> Flowable<T> |
timeout(Publisher<U> firstTimeoutIndicator, Function<? super T, ? extends Publisher<V>> itemTimeoutIndicator)
Returns a Flowable that mirrors the source Publisher, but notifies Subscribers of a
TimeoutException if either the first item emitted by the source Publisher or any subsequent item
doesn't arrive within time windows defined by other Publishers. | ||||||||||
final Flowable<T> |
timeout(long timeout, TimeUnit timeUnit)
Returns a Flowable that mirrors the source Publisher but applies a timeout policy for each emitted
item.
| ||||||||||
final <U, V> Flowable<T> |
timeout(Publisher<U> firstTimeoutIndicator, Function<? super T, ? extends Publisher<V>> itemTimeoutIndicator, Publisher<? extends T> other)
Returns a Flowable that mirrors the source Publisher, but switches to a fallback Publisher if either
the first item emitted by the source Publisher or any subsequent item doesn't arrive within time windows
defined by other Publishers.
| ||||||||||
final <V> Flowable<T> |
timeout(Function<? super T, ? extends Publisher<V>> itemTimeoutIndicator, Flowable<? extends T> other)
Returns a Flowable that mirrors the source Publisher, but that switches to a fallback Publisher if
an item emitted by the source Publisher doesn't arrive within a window of time after the emission of the
previous item, where that period of time is measured by a Publisher that is a function of the previous
item.
| ||||||||||
final Flowable<T> |
timeout(long timeout, TimeUnit timeUnit, Publisher<? extends T> other)
Returns a Flowable that mirrors the source Publisher but applies a timeout policy for each emitted
item.
| ||||||||||
final Flowable<T> |
timeout(long timeout, TimeUnit timeUnit, Scheduler scheduler, Publisher<? extends T> other)
Returns a Flowable that mirrors the source Publisher but applies a timeout policy for each emitted
item using a specified Scheduler.
| ||||||||||
final Flowable<T> |
timeout(long timeout, TimeUnit timeUnit, Scheduler scheduler)
Returns a Flowable that mirrors the source Publisher but applies a timeout policy for each emitted
item, where this policy is governed on a specified Scheduler.
| ||||||||||
static Flowable<Long> |
timer(long delay, TimeUnit unit)
Returns a Flowable that emits
0L after a specified delay, and then completes. | ||||||||||
static Flowable<Long> |
timer(long delay, TimeUnit unit, Scheduler scheduler)
Returns a Flowable that emits
0L after a specified delay, on a specified Scheduler, and then
completes. | ||||||||||
final Flowable<Timed<T>> |
timestamp(TimeUnit unit, Scheduler scheduler)
Returns a Flowable that emits each item emitted by the source Publisher, wrapped in a
Timed object whose timestamps are provided by a specified Scheduler. | ||||||||||
final Flowable<Timed<T>> |
timestamp()
Returns a Flowable that emits each item emitted by the source Publisher, wrapped in a
Timed object. | ||||||||||
final Flowable<Timed<T>> |
timestamp(Scheduler scheduler)
Returns a Flowable that emits each item emitted by the source Publisher, wrapped in a
Timed object whose timestamps are provided by a specified Scheduler. | ||||||||||
final Flowable<Timed<T>> |
timestamp(TimeUnit unit)
Returns a Flowable that emits each item emitted by the source Publisher, wrapped in a
Timed object. | ||||||||||
final <R> R |
to(Function<? super Flowable<T>, R> converter)
Calls the specified converter function during assembly time and returns its resulting value.
| ||||||||||
final Future<T> |
toFuture()
Returns a
Future representing the single value emitted by this Flowable . | ||||||||||
final <U extends Collection<? super T>> Single<U> |
toList(Callable<U> collectionSupplier)
Returns a Single that emits a single item, a list composed of all the items emitted by the
finite source Publisher.
| ||||||||||
final Single<List<T>> |
toList()
Returns a Single that emits a single item, a list composed of all the items emitted by the
finite upstream source Publisher.
| ||||||||||
final Single<List<T>> |
toList(int capacityHint)
Returns a Single that emits a single item, a list composed of all the items emitted by the
finite source Publisher.
| ||||||||||
final <K> Single<Map<K, T>> |
toMap(Function<? super T, ? extends K> keySelector)
Returns a Single that emits a single HashMap containing all items emitted by the source Publisher,
mapped by the keys returned by a specified
keySelector function. | ||||||||||
final <K, V> Single<Map<K, V>> |
toMap(Function<? super T, ? extends K> keySelector, Function<? super T, ? extends V> valueSelector, Callable<? extends Map<K, V>> mapSupplier)
Returns a Single that emits a single Map, returned by a specified
mapFactory function, that
contains keys and values extracted from the items emitted by the source Publisher. | ||||||||||
final <K, V> Single<Map<K, V>> |
toMap(Function<? super T, ? extends K> keySelector, Function<? super T, ? extends V> valueSelector)
Returns a Single that emits a single HashMap containing values corresponding to items emitted by the
source Publisher, mapped by the keys returned by a specified
keySelector function. | ||||||||||
final <K> Single<Map<K, Collection<T>>> |
toMultimap(Function<? super T, ? extends K> keySelector)
Returns a Single that emits a single HashMap that contains an ArrayList of items emitted by the
source Publisher keyed by a specified
keySelector function. | ||||||||||
final <K, V> Single<Map<K, Collection<V>>> |
toMultimap(Function<? super T, ? extends K> keySelector, Function<? super T, ? extends V> valueSelector, Callable<Map<K, Collection<V>>> mapSupplier)
Returns a Single that emits a single Map, returned by a specified
mapFactory function, that
contains an ArrayList of values, extracted by a specified valueSelector function from items
emitted by the source Publisher and keyed by the keySelector function. | ||||||||||
final <K, V> Single<Map<K, Collection<V>>> |
toMultimap(Function<? super T, ? extends K> keySelector, Function<? super T, ? extends V> valueSelector)
Returns a Single that emits a single HashMap that contains an ArrayList of values extracted by a
specified
valueSelector function from items emitted by the source Publisher, keyed by a
specified keySelector function. | ||||||||||
final <K, V> Single<Map<K, Collection<V>>> |
toMultimap(Function<? super T, ? extends K> keySelector, Function<? super T, ? extends V> valueSelector, Callable<? extends Map<K, Collection<V>>> mapSupplier, Function<? super K, ? extends Collection<? super V>> collectionFactory)
Returns a Single that emits a single Map, returned by a specified
mapFactory function, that
contains a custom collection of values, extracted by a specified valueSelector function from
items emitted by the source Publisher, and keyed by the keySelector function. | ||||||||||
final Observable<T> |
toObservable()
Converts the current Flowable into a non-backpressured
Observable . | ||||||||||
final Single<List<T>> |
toSortedList(Comparator<? super T> comparator, int capacityHint)
Returns a Single that emits a list that contains the items emitted by the source Publisher, in a
sorted order based on a specified comparison function.
| ||||||||||
final Single<List<T>> |
toSortedList(Comparator<? super T> comparator)
Returns a Single that emits a list that contains the items emitted by the source Publisher, in a
sorted order based on a specified comparison function.
| ||||||||||
final Single<List<T>> |
toSortedList()
Returns a Single that emits a list that contains the items emitted by the source Publisher, in a
sorted order.
| ||||||||||
final Single<List<T>> |
toSortedList(int capacityHint)
Returns a Flowable that emits a list that contains the items emitted by the source Publisher, in a
sorted order.
| ||||||||||
static <T> Flowable<T> |
unsafeCreate(Publisher<T> onSubscribe)
Create a Flowable by wrapping a Publisher which has to be implemented according
to the Reactive-Streams specification by handling backpressure and
cancellation correctly; no safeguards are provided by the Flowable itself.
| ||||||||||
final Flowable<T> |
unsubscribeOn(Scheduler scheduler)
Modifies the source Publisher so that subscribers will cancel it on a specified
Scheduler . | ||||||||||
static <T, D> Flowable<T> |
using(Callable<? extends D> resourceSupplier, Function<? super D, ? extends Publisher<? extends T>> sourceSupplier, Consumer<? super D> resourceDisposer)
Constructs a Publisher that creates a dependent resource object which is disposed of on cancellation.
| ||||||||||
static <T, D> Flowable<T> |
using(Callable<? extends D> resourceSupplier, Function<? super D, ? extends Publisher<? extends T>> sourceSupplier, Consumer<? super D> resourceDisposer, boolean eager)
Constructs a Publisher that creates a dependent resource object which is disposed of just before
termination if you have set
disposeEagerly to true and cancellation does not occur
before termination. | ||||||||||
final <U, V> Flowable<Flowable<T>> |
window(Publisher<U> openingIndicator, Function<? super U, ? extends Publisher<V>> closingIndicator)
Returns a Flowable that emits windows of items it collects from the source Publisher.
| ||||||||||
final Flowable<Flowable<T>> |
window(long timespan, long timeskip, TimeUnit unit, Scheduler scheduler)
Returns a Flowable that emits windows of items it collects from the source Publisher.
| ||||||||||
final Flowable<Flowable<T>> |
window(long timespan, TimeUnit unit, Scheduler scheduler, long count, boolean restart)
Returns a Flowable that emits windows of items it collects from the source Publisher.
| ||||||||||
final Flowable<Flowable<T>> |
window(long timespan, TimeUnit unit, Scheduler scheduler, long count, boolean restart, int bufferSize)
Returns a Flowable that emits windows of items it collects from the source Publisher.
| ||||||||||
final <B> Flowable<Flowable<T>> |
window(Callable<? extends Publisher<B>> boundaryIndicatorSupplier, int bufferSize)
Returns a Flowable that emits windows of items it collects from the source Publisher.
| ||||||||||
final Flowable<Flowable<T>> |
window(long timespan, TimeUnit unit, Scheduler scheduler)
Returns a Flowable that emits windows of items it collects from the source Publisher.
| ||||||||||
final Flowable<Flowable<T>> |
window(long timespan, long timeskip, TimeUnit unit, Scheduler scheduler, int bufferSize)
Returns a Flowable that emits windows of items it collects from the source Publisher.
| ||||||||||
final <U, V> Flowable<Flowable<T>> |
window(Publisher<U> openingIndicator, Function<? super U, ? extends Publisher<V>> closingIndicator, int bufferSize)
Returns a Flowable that emits windows of items it collects from the source Publisher.
| ||||||||||
final <B> Flowable<Flowable<T>> |
window(Publisher<B> boundaryIndicator, int bufferSize)
Returns a Flowable that emits non-overlapping windows of items it collects from the source Publisher
where the boundary of each window is determined by the items emitted from a specified boundary-governing
Publisher.
| ||||||||||
final Flowable<Flowable<T>> |
window(long count)
Returns a Flowable that emits windows of items it collects from the source Publisher.
| ||||||||||
final Flowable<Flowable<T>> |
window(long count, long skip)
Returns a Flowable that emits windows of items it collects from the source Publisher.
| ||||||||||
final Flowable<Flowable<T>> |
window(long timespan, long timeskip, TimeUnit unit)
Returns a Flowable that emits windows of items it collects from the source Publisher.
| ||||||||||
final <B> Flowable<Flowable<T>> |
window(Callable<? extends Publisher<B>> boundaryIndicatorSupplier)
Returns a Flowable that emits windows of items it collects from the source Publisher.
| ||||||||||
final Flowable<Flowable<T>> |
window(long timespan, TimeUnit unit, long count)
Returns a Flowable that emits windows of items it collects from the source Publisher.
| ||||||||||
final Flowable<Flowable<T>> |
window(long timespan, TimeUnit unit, long count, boolean restart)
Returns a Flowable that emits windows of items it collects from the source Publisher.
| ||||||||||
final <B> Flowable<Flowable<T>> |
window(Publisher<B> boundaryIndicator)
Returns a Flowable that emits non-overlapping windows of items it collects from the source Publisher
where the boundary of each window is determined by the items emitted from a specified boundary-governing
Publisher.
| ||||||||||
final Flowable<Flowable<T>> |
window(long timespan, TimeUnit unit, Scheduler scheduler, long count)
Returns a Flowable that emits windows of items it collects from the source Publisher.
| ||||||||||
final Flowable<Flowable<T>> |
window(long timespan, TimeUnit unit)
Returns a Flowable that emits windows of items it collects from the source Publisher.
| ||||||||||
final Flowable<Flowable<T>> |
window(long count, long skip, int bufferSize)
Returns a Flowable that emits windows of items it collects from the source Publisher.
| ||||||||||
final <U, R> Flowable<R> |
withLatestFrom(Publisher<? extends U> other, BiFunction<? super T, ? super U, ? extends R> combiner)
Merges the specified Publisher into this Publisher sequence by using the
resultSelector
function only when the source Publisher (this instance) emits an item. | ||||||||||
final <T1, T2, T3, R> Flowable<R> |
withLatestFrom(Publisher<T1> source1, Publisher<T2> source2, Publisher<T3> source3, Function4<? super T, ? super T1, ? super T2, ? super T3, R> combiner)
Combines the value emission from this Publisher with the latest emissions from the
other Publishers via a function to produce the output item.
| ||||||||||
final <R> Flowable<R> |
withLatestFrom(Publisher[]<?> others, Function<? super Object[], R> combiner)
Combines the value emission from this Publisher with the latest emissions from the
other Publishers via a function to produce the output item.
| ||||||||||
final <T1, T2, R> Flowable<R> |
withLatestFrom(Publisher<T1> source1, Publisher<T2> source2, Function3<? super T, ? super T1, ? super T2, R> combiner)
Combines the value emission from this Publisher with the latest emissions from the
other Publishers via a function to produce the output item.
| ||||||||||
final <T1, T2, T3, T4, R> Flowable<R> |
withLatestFrom(Publisher<T1> source1, Publisher<T2> source2, Publisher<T3> source3, Publisher<T4> source4, Function5<? super T, ? super T1, ? super T2, ? super T3, ? super T4, R> combiner)
Combines the value emission from this Publisher with the latest emissions from the
other Publishers via a function to produce the output item.
| ||||||||||
final <R> Flowable<R> |
withLatestFrom(Iterable<? extends Publisher<?>> others, Function<? super Object[], R> combiner)
Combines the value emission from this Publisher with the latest emissions from the
other Publishers via a function to produce the output item.
| ||||||||||
static <T1, T2, T3, T4, T5, T6, R> Flowable<R> |
zip(Publisher<? extends T1> source1, Publisher<? extends T2> source2, Publisher<? extends T3> source3, Publisher<? extends T4> source4, Publisher<? extends T5> source5, Publisher<? extends T6> source6, Function6<? super T1, ? super T2, ? super T3, ? super T4, ? super T5, ? super T6, ? extends R> zipper)
Returns a Flowable that emits the results of a specified combiner function applied to combinations of
six items emitted, in sequence, by six other Publishers.
| ||||||||||
static <T1, T2, T3, T4, T5, T6, T7, T8, R> Flowable<R> |
zip(Publisher<? extends T1> source1, Publisher<? extends T2> source2, Publisher<? extends T3> source3, Publisher<? extends T4> source4, Publisher<? extends T5> source5, Publisher<? extends T6> source6, Publisher<? extends T7> source7, Publisher<? extends T8> source8, Function8<? super T1, ? super T2, ? super T3, ? super T4, ? super T5, ? super T6, ? super T7, ? super T8, ? extends R> zipper)
Returns a Flowable that emits the results of a specified combiner function applied to combinations of
eight items emitted, in sequence, by eight other Publishers.
| ||||||||||
static <T1, T2, T3, T4, T5, T6, T7, T8, T9, R> Flowable<R> |
zip(Publisher<? extends T1> source1, Publisher<? extends T2> source2, Publisher<? extends T3> source3, Publisher<? extends T4> source4, Publisher<? extends T5> source5, Publisher<? extends T6> source6, Publisher<? extends T7> source7, Publisher<? extends T8> source8, Publisher<? extends T9> source9, Function9<? super T1, ? super T2, ? super T3, ? super T4, ? super T5, ? super T6, ? super T7, ? super T8, ? super T9, ? extends R> zipper)
Returns a Flowable that emits the results of a specified combiner function applied to combinations of
nine items emitted, in sequence, by nine other Publishers.
| ||||||||||
static <T, R> Flowable<R> |
zip(Publisher<? extends Publisher<? extends T>> sources, Function<? super Object[], ? extends R> zipper)
Returns a Flowable that emits the results of a specified combiner function applied to combinations of
n items emitted, in sequence, by the n Publishers emitted by a specified Publisher.
| ||||||||||
static <T1, T2, T3, T4, T5, R> Flowable<R> |
zip(Publisher<? extends T1> source1, Publisher<? extends T2> source2, Publisher<? extends T3> source3, Publisher<? extends T4> source4, Publisher<? extends T5> source5, Function5<? super T1, ? super T2, ? super T3, ? super T4, ? super T5, ? extends R> zipper)
Returns a Flowable that emits the results of a specified combiner function applied to combinations of
five items emitted, in sequence, by five other Publishers.
| ||||||||||
static <T1, T2, T3, T4, T5, T6, T7, R> Flowable<R> |
zip(Publisher<? extends T1> source1, Publisher<? extends T2> source2, Publisher<? extends T3> source3, Publisher<? extends T4> source4, Publisher<? extends T5> source5, Publisher<? extends T6> source6, Publisher<? extends T7> source7, Function7<? super T1, ? super T2, ? super T3, ? super T4, ? super T5, ? super T6, ? super T7, ? extends R> zipper)
Returns a Flowable that emits the results of a specified combiner function applied to combinations of
seven items emitted, in sequence, by seven other Publishers.
| ||||||||||
static <T1, T2, T3, R> Flowable<R> |
zip(Publisher<? extends T1> source1, Publisher<? extends T2> source2, Publisher<? extends T3> source3, Function3<? super T1, ? super T2, ? super T3, ? extends R> zipper)
Returns a Flowable that emits the results of a specified combiner function applied to combinations of
three items emitted, in sequence, by three other Publishers.
| ||||||||||
static <T1, T2, T3, T4, R> Flowable<R> |
zip(Publisher<? extends T1> source1, Publisher<? extends T2> source2, Publisher<? extends T3> source3, Publisher<? extends T4> source4, Function4<? super T1, ? super T2, ? super T3, ? super T4, ? extends R> zipper)
Returns a Flowable that emits the results of a specified combiner function applied to combinations of
four items emitted, in sequence, by four other Publishers.
| ||||||||||
static <T1, T2, R> Flowable<R> |
zip(Publisher<? extends T1> source1, Publisher<? extends T2> source2, BiFunction<? super T1, ? super T2, ? extends R> zipper, boolean delayError, int bufferSize)
Returns a Flowable that emits the results of a specified combiner function applied to combinations of
two items emitted, in sequence, by two other Publishers.
| ||||||||||
static <T1, T2, R> Flowable<R> |
zip(Publisher<? extends T1> source1, Publisher<? extends T2> source2, BiFunction<? super T1, ? super T2, ? extends R> zipper, boolean delayError)
Returns a Flowable that emits the results of a specified combiner function applied to combinations of
two items emitted, in sequence, by two other Publishers.
| ||||||||||
static <T, R> Flowable<R> |
zip(Iterable<? extends Publisher<? extends T>> sources, Function<? super Object[], ? extends R> zipper)
Returns a Flowable that emits the results of a specified combiner function applied to combinations of
items emitted, in sequence, by an Iterable of other Publishers.
| ||||||||||
static <T1, T2, R> Flowable<R> |
zip(Publisher<? extends T1> source1, Publisher<? extends T2> source2, BiFunction<? super T1, ? super T2, ? extends R> zipper)
Returns a Flowable that emits the results of a specified combiner function applied to combinations of
two items emitted, in sequence, by two other Publishers.
| ||||||||||
static <T, R> Flowable<R> |
zipArray(Function<? super Object[], ? extends R> zipper, boolean delayError, int bufferSize, Publisher...<? extends T> sources)
Returns a Flowable that emits the results of a specified combiner function applied to combinations of
items emitted, in sequence, by an array of other Publishers.
| ||||||||||
static <T, R> Flowable<R> |
zipIterable(Iterable<? extends Publisher<? extends T>> sources, Function<? super Object[], ? extends R> zipper, boolean delayError, int bufferSize)
Returns a Flowable that emits the results of a specified combiner function applied to combinations of
items emitted, in sequence, by an Iterable of other Publishers.
| ||||||||||
final <U, R> Flowable<R> |
zipWith(Publisher<? extends U> other, BiFunction<? super T, ? super U, ? extends R> zipper, boolean delayError)
Returns a Flowable that emits items that are the result of applying a specified function to pairs of
values, one each from the source Publisher and another specified Publisher.
| ||||||||||
final <U, R> Flowable<R> |
zipWith(Publisher<? extends U> other, BiFunction<? super T, ? super U, ? extends R> zipper)
Returns a Flowable that emits items that are the result of applying a specified function to pairs of
values, one each from the source Publisher and another specified Publisher.
| ||||||||||
final <U, R> Flowable<R> |
zipWith(Iterable<U> other, BiFunction<? super T, ? super U, ? extends R> zipper)
Returns a Flowable that emits items that are the result of applying a specified function to pairs of
values, one each from the source Publisher and a specified Iterable sequence.
| ||||||||||
final <U, R> Flowable<R> |
zipWith(Publisher<? extends U> other, BiFunction<? super T, ? super U, ? extends R> zipper, boolean delayError, int bufferSize)
Returns a Flowable that emits items that are the result of applying a specified function to pairs of
values, one each from the source Publisher and another specified Publisher.
|
Protected Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
abstract void |
subscribeActual(Subscriber<? super T> s)
Operator implementations (both source and intermediate) should implement this method that
performs the necessary business logic.
|
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
![]() | |||||||||||
![]() |
Returns a Single that emits a Boolean that indicates whether all of the items emitted by the source Publisher satisfy a condition.
Publisher
in an unbounded
manner (i.e., without applying backpressure).all
does not operate by default on a particular Scheduler
.predicate | a function that evaluates an item and returns a Boolean |
---|
true
if all items emitted by the source Publisher satisfy the
predicate; otherwise, false
Mirrors the one Publisher in an Iterable of several Publishers that first either emits an item or sends a termination notification.
Publisher
's backpressure behavior.amb
does not operate by default on a particular Scheduler
.sources | an Iterable of Publishers sources competing to react first. A subscription to each Publisher will occur in the same order as in this Iterable. |
---|
Mirrors the one Publisher in an array of several Publishers that first either emits an item or sends a termination notification.
Publisher
's backpressure behavior.ambArray
does not operate by default on a particular Scheduler
.sources | an array of Publisher sources competing to react first. A subscription to each Publisher will occur in the same order as in this Iterable. |
---|
Mirrors the Publisher (current or provided) that first either emits an item or sends a termination notification.
Publisher
's backpressure behavior.ambWith
does not operate by default on a particular Scheduler
.other | a Publisher competing to react first. A subscription to this provided Publisher will occur after subscribing to the current Publisher. |
---|
Returns a Single that emits true
if any item emitted by the source Publisher satisfies a
specified condition, otherwise false
. Note: this always emits false
if the
source Publisher is empty.
In Rx.Net this is the any
Subscriber but we renamed it in RxJava to better match Java naming
idioms.
Publisher
in an unbounded manner
(i.e., no backpressure applied to it).any
does not operate by default on a particular Scheduler
.predicate | the condition to test items emitted by the source Publisher |
---|
predicate
Returns the first item emitted by this Flowable
, or a default value if it emits no
items.
Flowable
in an unbounded manner
(i.e., no backpressure applied to it).blockingFirst
does not operate by default on a particular Scheduler
.defaultItem | a default value to return if this Flowable emits no items |
---|
Flowable
, or the default value if it emits no
itemsReturns the first item emitted by this Flowable
, or throws
NoSuchElementException
if it emits no items.
Flowable
in an unbounded manner
(i.e., no backpressure applied to it).blockingFirst
does not operate by default on a particular Scheduler
.Flowable
NoSuchElementException | if this Flowable emits no items |
---|
Invokes a method on each item emitted by this Flowable
and blocks until the Flowable
completes.
Note: This will block even if the underlying Flowable is asynchronous.
This is similar to subscribe(Subscriber)
, but it blocks. Because it blocks it does not
need the onComplete()
or onError(Throwable)
methods. If the
underlying Flowable terminates with an error, rather than calling onError
, this method will
throw an exception.
The difference between this method and subscribe(Consumer)
is that the onNext
action
is executed on the emission thread instead of the current thread.
Flowable
in an unbounded manner
(i.e., no backpressure applied to it).blockingForEach
does not operate by default on a particular Scheduler
.onNext | the Consumer to invoke for each item emitted by the Flowable |
---|
RuntimeException | if an error occurs |
---|
Converts this Flowable
into an Iterable
.
MissingBackpressureException
.
blockingIterable
does not operate by default on a particular Scheduler
.bufferSize | the number of items to prefetch from the current Flowable |
---|
Iterable
version of this Flowable
Converts this Flowable
into an Iterable
.
MissingBackpressureException
.blockingIterable
does not operate by default on a particular Scheduler
.Iterable
version of this Flowable
Returns the last item emitted by this Flowable
, or throws
NoSuchElementException
if this Flowable
emits no items.
Flowable
in an unbounded manner
(i.e., no backpressure applied to it).blockingLast
does not operate by default on a particular Scheduler
.Flowable
NoSuchElementException | if this Flowable emits no items |
---|
Returns the last item emitted by this Flowable
, or a default value if it emits no
items.
Flowable
in an unbounded manner
(i.e., no backpressure applied to it).blockingLast
does not operate by default on a particular Scheduler
.defaultItem | a default value to return if this Flowable emits no items |
---|
Flowable
, or the default value if it emits no
itemsReturns an Iterable
that returns the latest item emitted by this Flowable
,
waiting if necessary for one to become available.
If this Flowable
produces items faster than Iterator.next
takes them,
onNext
events might be skipped, but onError
or onComplete
events are not.
Note also that an onNext
directly followed by onComplete
might hide the onNext
event.
Flowable
in an unbounded manner
(i.e., no backpressure applied to it).blockingLatest
does not operate by default on a particular Scheduler
.Flowable
Returns an Iterable
that always returns the item most recently emitted by this
Flowable
.
Flowable
in an unbounded manner
(i.e., no backpressure applied to it).blockingMostRecent
does not operate by default on a particular Scheduler
.initialItem | the initial item that the Iterable sequence will yield if this
Flowable has not yet emitted an item |
---|
Iterable
that on each iteration returns the item that this Flowable
has most recently emittedReturns an Iterable
that blocks until this Flowable
emits another item, then
returns that item.
Flowable
in an unbounded manner
(i.e., no backpressure applied to it).blockingNext
does not operate by default on a particular Scheduler
.Iterable
that blocks upon each iteration until this Flowable
emits
a new item, whereupon the Iterable returns that itemIf this Flowable
completes after emitting a single item, return that item; if it emits
more than one item, throw an IllegalArgumentException
; if it emits no items, return a default
value.
Flowable
in an unbounded manner
(i.e., no backpressure applied to it).blockingSingle
does not operate by default on a particular Scheduler
.defaultItem | a default value to return if this Flowable emits no items |
---|
Flowable
, or the default value if it emits no
itemsIf this Flowable
completes after emitting a single item, return that item, otherwise
throw a NoSuchElementException
.
Flowable
in an unbounded manner
(i.e., no backpressure applied to it).blockingSingle
does not operate by default on a particular Scheduler
.Flowable
Subscribes to the source and calls the given callbacks on the current thread.
If the Flowable emits an error, it is wrapped into an
OnErrorNotImplementedException
and routed to the RxJavaPlugins.onError handler.
Flowable
in an unbounded manner
(i.e., no backpressure applied to it).blockingSubscribe
does not operate by default on a particular Scheduler
.onNext | the callback action for each source value |
---|
Subscribes to the source and calls the given callbacks on the current thread.
Flowable
in an unbounded manner
(i.e., no backpressure applied to it).blockingSubscribe
does not operate by default on a particular Scheduler
.onNext | the callback action for each source value |
---|---|
onError | the callback action for an error event |
Runs the source observable to a terminal event, ignoring any values and rethrowing any exception.
Flowable
in an unbounded manner
(i.e., no backpressure applied to it).blockingSubscribe
does not operate by default on a particular Scheduler
.Subscribes to the source and calls the given callbacks on the current thread.
Flowable
in an unbounded manner
(i.e., no backpressure applied to it).blockingSubscribe
does not operate by default on a particular Scheduler
.onNext | the callback action for each source value |
---|---|
onError | the callback action for an error event |
onComplete | the callback action for the completion event. |
Subscribes to the source and calls the Subscriber methods on the current thread.
Subscriber
determines how backpressure is applied.blockingSubscribe
does not operate by default on a particular Scheduler
.subscriber | the subscriber to forward events and calls to in the current thread |
---|
Returns a Flowable that emits buffers of items it collects from the source Publisher. The resulting
Publisher starts a new buffer periodically, as determined by the timeskip
argument, and on the
specified scheduler
. It emits each buffer after a fixed timespan, specified by the
timespan
argument. When the source Publisher completes or encounters an error, the resulting
Publisher emits the current buffer and propagates the notification from the source Publisher.
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 |
---|---|
timeskip | the period of time after which a new buffer will be created |
unit | the unit of time that applies to the timespan and timeskip arguments |
scheduler | the Scheduler to use when determining the end and start of a buffer |
bufferSupplier | a factory function that returns an instance of the collection subclass to be used and returned as the buffer |
Returns a Flowable that emits buffers of items it collects from the source Publisher. The resulting
Publisher emits connected, non-overlapping buffers. It emits the current buffer and replaces it with a
new buffer whenever the Publisher produced by the specified closingIndicator
emits an item.
Long.MAX_VALUE
upstream and does not obey downstream requests.buffer
does not operate by default on a particular Scheduler
.boundaryIndicatorSupplier | a Callable that produces a Publisher that governs the boundary between buffers.
Whenever the source Publisher emits an item, buffer emits the current buffer and
begins to fill a new one |
---|
closingIndicator
argument emits an itemReturns a Flowable that emits buffers of items it collects from the source Publisher. The resulting
Publisher starts a new buffer periodically, as determined by the timeskip
argument, and on the
specified scheduler
. It emits each buffer after a fixed timespan, specified by the
timespan
argument. When the source Publisher completes or encounters an error, the resulting
Publisher emits the current buffer and propagates the notification from the source Publisher.
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 |
---|---|
timeskip | the period of time after which a new buffer will be created |
unit | the unit of time that applies to the timespan and timeskip arguments |
scheduler | the Scheduler to use when determining the end and start of a buffer |
Returns a Flowable that emits buffers of items it collects from the source Publisher. The resulting
Publisher emits connected, non-overlapping buffers, each containing count
items. When the source
Publisher completes or encounters an error, the resulting Publisher emits the current buffer and
propagates the notification from the source Publisher.
Publisher
to honor it as
well, although not enforced; violation may lead to MissingBackpressureException
somewhere
downstream.buffer
does not operate by default on a particular Scheduler
.count | the maximum number of items in each buffer before it should be emitted |
---|---|
bufferSupplier | a factory function that returns an instance of the collection subclass to be used and returned as the buffer |
count
items from the source PublisherReturns a Flowable that emits non-overlapping buffered items from the source Publisher each time the specified boundary Publisher emits an item.
Completion of either the source or the boundary Publisher causes the returned Publisher to emit the latest buffer and complete.
Publisher
boundary
and buffers data. It requests Long.MAX_VALUE
upstream and does not obey
downstream requests.buffer
does not operate by default on a particular Scheduler
.boundaryIndicator | the boundary Publisher |
---|---|
bufferSupplier | a factory function that returns an instance of the collection subclass to be used and returned as the buffer |
Returns a Flowable that emits non-overlapping buffered items from the source Publisher each time the specified boundary Publisher emits an item.
Completion of either the source or the boundary Publisher causes the returned Publisher to emit the latest buffer and complete.
Publisher
boundary
and buffers data. It requests Long.MAX_VALUE
upstream and does not obey
downstream requests.buffer
does not operate by default on a particular Scheduler
.boundaryIndicator | the boundary Publisher |
---|---|
initialCapacity | the initial capacity of each buffer chunk |
Returns a Flowable that emits buffers of items it collects from the source Publisher. The resulting
Publisher emits connected, non-overlapping buffers, each of a fixed duration specified by the
timespan
argument and on the specified scheduler
. When the source Publisher completes or
encounters an error, the resulting Publisher emits the current buffer and propagates the notification
from the source Publisher.
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 buffer |
---|---|
unit | the unit of time which applies to the timespan argument |
scheduler | the Scheduler to use when determining the end and start of a buffer |
Returns a Flowable that emits buffers of items it collects from the source Publisher. The resulting
Publisher emits connected, non-overlapping buffers, each containing count
items. When the source
Publisher completes or encounters an error, the resulting Publisher emits the current buffer and
propagates the notification from the source Publisher.
Publisher
to honor it as
well, although not enforced; violation may lead to MissingBackpressureException
somewhere
downstream.buffer
does not operate by default on a particular Scheduler
.count | the maximum number of items in each buffer before it should be emitted |
---|
count
items from the source PublisherReturns a Flowable that emits buffers of items it collects from the source Publisher. The resulting
Publisher starts a new buffer periodically, as determined by the timeskip
argument. It emits
each buffer after a fixed timespan, specified by the timespan
argument. When the source
Publisher completes or encounters an error, the resulting Publisher emits the current buffer and
propagates the notification from the source Publisher.
Long.MAX_VALUE
upstream and does not obey downstream requests.buffer
operates by default on the computation
Scheduler
.timespan | the period of time each buffer collects items before it is emitted |
---|---|
timeskip | the period of time after which a new buffer will be created |
unit | the unit of time that applies to the timespan and timeskip arguments |
Returns a Flowable that emits buffers of items it collects from the source Publisher. The resulting
Publisher emits buffers that it creates when the specified openingIndicator
Publisher emits an
item, and closes when the Publisher returned from closingIndicator
emits an item.
Long.MAX_VALUE
upstream and does not obey downstream requests.buffer
does not operate by default on a particular Scheduler
.openingIndicator | the Publisher that, when it emits an item, causes a new buffer to be created |
---|---|
closingIndicator | the Function that is used to produce a Publisher for every buffer created. When this
Publisher emits an item, the associated buffer is emitted. |
Returns a Flowable that emits buffers of items it collects from the source Publisher. The resulting
Publisher emits connected, non-overlapping buffers, each of a fixed duration specified by the
timespan
argument as measured on the specified scheduler
, or a maximum size specified by
the count
argument (whichever is reached first). When the source Publisher completes or
encounters an error, the resulting Publisher emits the current buffer and propagates the notification
from the source Publisher.
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 buffer |
---|---|
unit | the unit of time which applies to the timespan argument |
scheduler | the Scheduler to use when determining the end and start of a buffer |
count | the maximum size of each buffer before it is emitted |
Returns a Flowable that emits buffers of items it collects from the source Publisher. The resulting
Publisher emits connected, non-overlapping buffers, each of a fixed duration specified by the
timespan
argument. When the source Publisher completes or encounters an error, the resulting
Publisher emits the current buffer and propagates the notification from the source Publisher.
Long.MAX_VALUE
upstream and does not obey downstream requests.buffer
operates by default on the computation
Scheduler
.timespan | the period of time each buffer collects items before it is emitted and replaced with a new buffer |
---|---|
unit | the unit of time that applies to the timespan argument |
Returns a Flowable that emits buffers of items it collects from the source Publisher. The resulting
Publisher emits connected, non-overlapping buffers, each of a fixed duration specified by the
timespan
argument as measured on the specified scheduler
, or a maximum size specified by
the count
argument (whichever is reached first). When the source Publisher completes or
encounters an error, the resulting Publisher emits the current buffer and propagates the notification
from the source Publisher.
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 buffer |
---|---|
unit | the unit of time which applies to the timespan argument |
scheduler | the Scheduler to use when determining the end and start of a buffer |
count | the maximum size of each buffer before it is emitted |
bufferSupplier | a factory function that returns an instance of the collection subclass to be used and returned as the buffer |
restartTimerOnMaxSize | if true the time window is restarted when the max capacity of the current buffer is reached |
Returns a Flowable that emits buffers of items it collects from the source Publisher. The resulting
Publisher emits buffers every skip
items, each containing count
items. When the source
Publisher completes or encounters an error, the resulting Publisher emits the current buffer and
propagates the notification from the source Publisher.
Publisher
to honor it as
well, although not enforced; violation may lead to MissingBackpressureException
somewhere
downstream.buffer
does not operate by default on a particular Scheduler
.count | the maximum size of each buffer before it should be emitted |
---|---|
skip | how many items emitted by the source Publisher should be skipped before starting a new
buffer. Note that when skip and count are equal, this is the same operation as
buffer(int) . |
skip
item from the source Publisher and
containing at most count
itemsReturns a Flowable that emits non-overlapping buffered items from the source Publisher each time the specified boundary Publisher emits an item.
Completion of either the source or the boundary Publisher causes the returned Publisher to emit the latest buffer and complete.
Publisher
boundary
and buffers data. It requests Long.MAX_VALUE
upstream and does not obey
downstream requests.buffer
does not operate by default on a particular Scheduler
.boundaryIndicator | the boundary Publisher |
---|
Returns a Flowable that emits buffers of items it collects from the source Publisher. The resulting
Publisher emits buffers that it creates when the specified openingIndicator
Publisher emits an
item, and closes when the Publisher returned from closingIndicator
emits an item.
Long.MAX_VALUE
upstream and does not obey downstream requests.buffer
does not operate by default on a particular Scheduler
.openingIndicator | the Publisher that, when it emits an item, causes a new buffer to be created |
---|---|
closingIndicator | the Function that is used to produce a Publisher for every buffer created. When this
Publisher emits an item, the associated buffer is emitted. |
bufferSupplier | a factory function that returns an instance of the collection subclass to be used and returned as the buffer |
Returns a Flowable that emits buffers of items it collects from the source Publisher. The resulting
Publisher emits connected, non-overlapping buffers. It emits the current buffer and replaces it with a
new buffer whenever the Publisher produced by the specified closingIndicator
emits an item.
Long.MAX_VALUE
upstream and does not obey downstream requests.buffer
does not operate by default on a particular Scheduler
.boundaryIndicatorSupplier | a Callable that produces a Publisher that governs the boundary between buffers.
Whenever the source Publisher emits an item, buffer emits the current buffer and
begins to fill a new one |
---|---|
bufferSupplier | a factory function that returns an instance of the collection subclass to be used and returned as the buffer |
closingIndicator
argument emits an itemReturns a Flowable that emits buffers of items it collects from the source Publisher. The resulting
Publisher emits connected, non-overlapping buffers, each of a fixed duration specified by the
timespan
argument or a maximum size specified by the count
argument (whichever is reached
first). When the source Publisher completes or encounters an error, the resulting Publisher emits the
current buffer and propagates the notification from the source Publisher.
Long.MAX_VALUE
upstream and does not obey downstream requests.buffer
operates by default on the computation
Scheduler
.timespan | the period of time each buffer collects items before it is emitted and replaced with a new buffer |
---|---|
unit | the unit of time which applies to the timespan argument |
count | the maximum size of each buffer before it is emitted |
Returns a Flowable that emits buffers of items it collects from the source Publisher. The resulting
Publisher emits buffers every skip
items, each containing count
items. When the source
Publisher completes or encounters an error, the resulting Publisher emits the current buffer and
propagates the notification from the source Publisher.
Publisher
to honor it as
well, although not enforced; violation may lead to MissingBackpressureException
somewhere
downstream.buffer
does not operate by default on a particular Scheduler
.count | the maximum size of each buffer before it should be emitted |
---|---|
skip | how many items emitted by the source Publisher should be skipped before starting a new
buffer. Note that when skip and count are equal, this is the same operation as
buffer(int) . |
bufferSupplier | a factory function that returns an instance of the collection subclass to be used and returned as the buffer |
skip
item from the source Publisher and
containing at most count
itemsReturns the default internal buffer size used by most async operators.
The value can be overridden via system parameter rx2.buffer-size
before the Flowable class is loaded.
Returns a Flowable that subscribes to this Publisher lazily, caches all of its events and replays them, in the same order as received, to all the downstream subscribers.
This is useful when you want a Publisher to cache responses and you can't control the subscribe/cancel behavior of all the Subscribers.
The operator subscribes only when the first downstream subscriber subscribes and maintains
a single subscription towards this Publisher. In contrast, the operator family of replay()
that return a ConnectableFlowable
require an explicit call to connect()
.
Note: You sacrifice the ability to cancel the origin when you use the cache
Subscriber so be careful not to use this Subscriber on Publishers 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 via onTerminateDetach()
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 particular Scheduler
.Returns a Flowable that subscribes to this Publisher lazily, caches all of its events and replays them, in the same order as received, to all the downstream subscribers.
This is useful when you want a Publisher to cache responses and you can't control the subscribe/cancel behavior of all the Subscribers.
The operator subscribes only when the first downstream subscriber subscribes and maintains
a single subscription towards this Publisher. In contrast, the operator family of replay()
that return a ConnectableFlowable
require an explicit call to connect()
.
Note: You sacrifice the ability to cancel the origin when you use the cache
Subscriber so be careful not to use this Subscriber on Publishers 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 via onTerminateDetach()
applied along with the previous
workaround:
AtomicBoolean shouldStop = new AtomicBoolean();
source.takeUntil(v -> shouldStop.get())
.onTerminateDetach()
.cache()
.takeUntil(v -> shouldStop.get())
.onTerminateDetach()
.subscribe(...);
cacheWithInitialCapacity
does not operate by default on a particular Scheduler
.
Note: The capacity hint is not an upper bound on cache size. For that, consider
replay(int)
in combination with autoConnect()
or similar.
initialCapacity | hint for number of items to cache (for optimizing underlying data structure) |
---|
Returns a Flowable that emits the items emitted by the source Publisher, converted to the specified type.
Publisher
's
backpressure behavior.cast
does not operate by default on a particular Scheduler
.clazz | the target class type that cast will cast the items emitted by the source Publisher
into before emitting them from the resulting Publisher |
---|
Collects items emitted by the source Publisher into a single mutable data structure and returns a Single that emits this structure.
This is a simplified version of reduce
that does not need to return the state on each pass.
onNext
.collect
does not operate by default on a particular Scheduler
.initialItemSupplier | the mutable data structure that will collect the items |
---|---|
collector | a function that accepts the state and an emitted item, and modifies state
accordingly |
Collects items emitted by the source Publisher into a single mutable data structure and returns a Single that emits this structure.
This is a simplified version of reduce
that does not need to return the state on each pass.
onNext
.collectInto
does not operate by default on a particular Scheduler
.initialItem | the mutable data structure that will collect the items |
---|---|
collector | a function that accepts the state and an emitted item, and modifies state
accordingly |
Combines nine source Publishers by emitting an item that aggregates the latest values of each of the source Publishers each time an item is received from any of the source Publishers, where this aggregation is defined by a specified function.
If any of the sources never produces an item but only terminates (normally or with an error), the resulting sequence terminates immediately (normally or with all the errors accumulated till that point). If that input source is also synchronous, other sources after it will not be subscribed to.
Publisher
honors backpressure from downstream. The source Publisher
s
are requested in a bounded manner, however, their backpressure is not enforced (the operator won't signal
MissingBackpressureException
) and may lead to OutOfMemoryError
due to internal buffer bloat.combineLatest
does not operate by default on a particular Scheduler
.source1 | the first source Publisher |
---|---|
source2 | the second source Publisher |
source3 | the third source Publisher |
source4 | the fourth source Publisher |
source5 | the fifth source Publisher |
source6 | the sixth source Publisher |
source7 | the seventh source Publisher |
source8 | the eighth source Publisher |
source9 | the ninth source Publisher |
combiner | the aggregation function used to combine the items emitted by the source Publishers |
Combines a collection of source Publishers by emitting an item that aggregates the latest values of each of the source Publishers each time an item is received from any of the source Publishers, where this aggregation is defined by a specified function.
Note on method signature: since Java doesn't allow creating a generic array with new T[]
, the
implementation of this operator has to create an Object[]
instead. Unfortunately, a
Function<Integer[], R>
passed to the method would trigger a ClassCastException
.
If any of the sources never produces an item but only terminates (normally or with an error), the resulting sequence terminates immediately (normally or with all the errors accumulated till that point). If that input source is also synchronous, other sources after it will not be subscribed to.
If the provided array of source Publishers is empty, the resulting sequence completes immediately without emitting any items and without any calls to the combiner function.
Publisher
honors backpressure from downstream. The source Publisher
s
are requested in a bounded manner, however, their backpressure is not enforced (the operator won't signal
MissingBackpressureException
) and may lead to OutOfMemoryError
due to internal buffer bloat.combineLatest
does not operate by default on a particular Scheduler
.sources | the collection of source Publishers |
---|---|
combiner | the aggregation function used to combine the items emitted by the source Publishers |
Combines a collection of source Publishers by emitting an item that aggregates the latest values of each of the source Publishers each time an item is received from any of the source Publishers, where this aggregation is defined by a specified function.
Note on method signature: since Java doesn't allow creating a generic array with new T[]
, the
implementation of this operator has to create an Object[]
instead. Unfortunately, a
Function<Integer[], R>
passed to the method would trigger a ClassCastException
.
If any of the sources never produces an item but only terminates (normally or with an error), the resulting sequence terminates immediately (normally or with all the errors accumulated till that point). If that input source is also synchronous, other sources after it will not be subscribed to.
If the provided iterable of source Publishers is empty, the resulting sequence completes immediately without emitting any items and without any calls to the combiner function.
Publisher
honors backpressure from downstream. The source Publisher
s
are requested in a bounded manner, however, their backpressure is not enforced (the operator won't signal
MissingBackpressureException
) and may lead to OutOfMemoryError
due to internal buffer bloat.combineLatest
does not operate by default on a particular Scheduler
.sources | the collection of source Publishers |
---|---|
combiner | the aggregation function used to combine the items emitted by the source Publishers |
Combines eight source Publishers by emitting an item that aggregates the latest values of each of the source Publishers each time an item is received from any of the source Publishers, where this aggregation is defined by a specified function.
If any of the sources never produces an item but only terminates (normally or with an error), the resulting sequence terminates immediately (normally or with all the errors accumulated till that point). If that input source is also synchronous, other sources after it will not be subscribed to.
Publisher
honors backpressure from downstream. The source Publisher
s
are requested in a bounded manner, however, their backpressure is not enforced (the operator won't signal
MissingBackpressureException
) and may lead to OutOfMemoryError
due to internal buffer bloat.combineLatest
does not operate by default on a particular Scheduler
.source1 | the first source Publisher |
---|---|
source2 | the second source Publisher |
source3 | the third source Publisher |
source4 | the fourth source Publisher |
source5 | the fifth source Publisher |
source6 | the sixth source Publisher |
source7 | the seventh source Publisher |
source8 | the eighth source Publisher |
combiner | the aggregation function used to combine the items emitted by the source Publishers |
Combines two source Publishers by emitting an item that aggregates the latest values of each of the source Publishers each time an item is received from either of the source Publishers, where this aggregation is defined by a specified function.
If any of the sources never produces an item but only terminates (normally or with an error), the resulting sequence terminates immediately (normally or with all the errors accumulated till that point). If that input source is also synchronous, other sources after it will not be subscribed to.
Publisher
honors backpressure from downstream. The source Publisher
s
are requested in a bounded manner, however, their backpressure is not enforced (the operator won't signal
MissingBackpressureException
) and may lead to OutOfMemoryError
due to internal buffer bloat.combineLatest
does not operate by default on a particular Scheduler
.source1 | the first source Publisher |
---|---|
source2 | the second source Publisher |
combiner | the aggregation function used to combine the items emitted by the source Publishers |
Combines three source Publishers by emitting an item that aggregates the latest values of each of the source Publishers each time an item is received from any of the source Publishers, where this aggregation is defined by a specified function.
If any of the sources never produces an item but only terminates (normally or with an error), the resulting sequence terminates immediately (normally or with all the errors accumulated till that point). If that input source is also synchronous, other sources after it will not be subscribed to.
Publisher
honors backpressure from downstream. The source Publisher
s
are requested in a bounded manner, however, their backpressure is not enforced (the operator won't signal
MissingBackpressureException
) and may lead to OutOfMemoryError
due to internal buffer bloat.combineLatest
does not operate by default on a particular Scheduler
.source1 | the first source Publisher |
---|---|
source2 | the second source Publisher |
source3 | the third source Publisher |
combiner | the aggregation function used to combine the items emitted by the source Publishers |
Combines four source Publishers by emitting an item that aggregates the latest values of each of the source Publishers each time an item is received from any of the source Publishers, where this aggregation is defined by a specified function.
If any of the sources never produces an item but only terminates (normally or with an error), the resulting sequence terminates immediately (normally or with all the errors accumulated till that point). If that input source is also synchronous, other sources after it will not be subscribed to.
Publisher
honors backpressure from downstream. The source Publisher
s
are requested in a bounded manner, however, their backpressure is not enforced (the operator won't signal
MissingBackpressureException
) and may lead to OutOfMemoryError
due to internal buffer bloat.combineLatest
does not operate by default on a particular Scheduler
.source1 | the first source Publisher |
---|---|
source2 | the second source Publisher |
source3 | the third source Publisher |
source4 | the fourth source Publisher |
combiner | the aggregation function used to combine the items emitted by the source Publishers |
Combines five source Publishers by emitting an item that aggregates the latest values of each of the source Publishers each time an item is received from any of the source Publishers, where this aggregation is defined by a specified function.
If any of the sources never produces an item but only terminates (normally or with an error), the resulting sequence terminates immediately (normally or with all the errors accumulated till that point). If that input source is also synchronous, other sources after it will not be subscribed to.
Publisher
honors backpressure from downstream. The source Publisher
s
are requested in a bounded manner, however, their backpressure is not enforced (the operator won't signal
MissingBackpressureException
) and may lead to OutOfMemoryError
due to internal buffer bloat.combineLatest
does not operate by default on a particular Scheduler
.source1 | the first source Publisher |
---|---|
source2 | the second source Publisher |
source3 | the third source Publisher |
source4 | the fourth source Publisher |
source5 | the fifth source Publisher |
combiner | the aggregation function used to combine the items emitted by the source Publishers |
Combines a collection of source Publishers by emitting an item that aggregates the latest values of each of the source Publishers each time an item is received from any of the source Publishers, where this aggregation is defined by a specified function.
Note on method signature: since Java doesn't allow creating a generic array with new T[]
, the
implementation of this operator has to create an Object[]
instead. Unfortunately, a
Function<Integer[], R>
passed to the method would trigger a ClassCastException
.
If any of the sources never produces an item but only terminates (normally or with an error), the resulting sequence terminates immediately (normally or with all the errors accumulated till that point). If that input source is also synchronous, other sources after it will not be subscribed to.
If the provided array of source Publishers is empty, the resulting sequence completes immediately without emitting any items and without any calls to the combiner function.
Publisher
honors backpressure from downstream. The source Publisher
s
are requested in a bounded manner, however, their backpressure is not enforced (the operator won't signal
MissingBackpressureException
) and may lead to OutOfMemoryError
due to internal buffer bloat.combineLatest
does not operate by default on a particular Scheduler
.sources | the collection of source Publishers |
---|---|
combiner | the aggregation function used to combine the items emitted by the source Publishers |
bufferSize | the internal buffer size and prefetch amount applied to every source Flowable |
Combines a collection of source Publishers by emitting an item that aggregates the latest values of each of the source Publishers each time an item is received from any of the source Publishers, where this aggregation is defined by a specified function.
Note on method signature: since Java doesn't allow creating a generic array with new T[]
, the
implementation of this operator has to create an Object[]
instead. Unfortunately, a
Function<Integer[], R>
passed to the method would trigger a ClassCastException
.
If any of the sources never produces an item but only terminates (normally or with an error), the resulting sequence terminates immediately (normally or with all the errors accumulated till that point). If that input source is also synchronous, other sources after it will not be subscribed to.
If there are no source Publishers provided, the resulting sequence completes immediately without emitting any items and without any calls to the combiner function.
Publisher
honors backpressure from downstream. The source Publisher
s
are requested in a bounded manner, however, their backpressure is not enforced (the operator won't signal
MissingBackpressureException
) and may lead to OutOfMemoryError
due to internal buffer bloat.combineLatest
does not operate by default on a particular Scheduler
.combiner | the aggregation function used to combine the items emitted by the source Publishers |
---|---|
sources | the collection of source Publishers |
Combines seven source Publishers by emitting an item that aggregates the latest values of each of the source Publishers each time an item is received from any of the source Publishers, where this aggregation is defined by a specified function.
If any of the sources never produces an item but only terminates (normally or with an error), the resulting sequence terminates immediately (normally or with all the errors accumulated till that point). If that input source is also synchronous, other sources after it will not be subscribed to.
Publisher
honors backpressure from downstream. The source Publisher
s
are requested in a bounded manner, however, their backpressure is not enforced (the operator won't signal
MissingBackpressureException
) and may lead to OutOfMemoryError
due to internal buffer bloat.combineLatest
does not operate by default on a particular Scheduler
.source1 | the first source Publisher |
---|---|
source2 | the second source Publisher |
source3 | the third source Publisher |
source4 | the fourth source Publisher |
source5 | the fifth source Publisher |
source6 | the sixth source Publisher |
source7 | the seventh source Publisher |
combiner | the aggregation function used to combine the items emitted by the source Publishers |
Combines a collection of source Publishers by emitting an item that aggregates the latest values of each of the source Publishers each time an item is received from any of the source Publishers, where this aggregation is defined by a specified function.
Note on method signature: since Java doesn't allow creating a generic array with new T[]
, the
implementation of this operator has to create an Object[]
instead. Unfortunately, a
Function<Integer[], R>
passed to the method would trigger a ClassCastException
.
If any of the sources never produces an item but only terminates (normally or with an error), the resulting sequence terminates immediately (normally or with all the errors accumulated till that point). If that input source is also synchronous, other sources after it will not be subscribed to.
If the provided iterable of source Publishers is empty, the resulting sequence completes immediately without emitting any items and without any calls to the combiner function.
Publisher
honors backpressure from downstream. The source Publisher
s
are requested in a bounded manner, however, their backpressure is not enforced (the operator won't signal
MissingBackpressureException
) and may lead to OutOfMemoryError
due to internal buffer bloat.combineLatest
does not operate by default on a particular Scheduler
.sources | the collection of source Publishers |
---|---|
combiner | the aggregation function used to combine the items emitted by the source Publishers |
bufferSize | the internal buffer size and prefetch amount applied to every source Flowable |
Combines six source Publishers by emitting an item that aggregates the latest values of each of the source Publishers each time an item is received from any of the source Publishers, where this aggregation is defined by a specified function.
If any of the sources never produces an item but only terminates (normally or with an error), the resulting sequence terminates immediately (normally or with all the errors accumulated till that point). If that input source is also synchronous, other sources after it will not be subscribed to.
Publisher
honors backpressure from downstream. The source Publisher
s
are requested in a bounded manner, however, their backpressure is not enforced (the operator won't signal
MissingBackpressureException
) and may lead to OutOfMemoryError
due to internal buffer bloat.combineLatest
does not operate by default on a particular Scheduler
.source1 | the first source Publisher |
---|---|
source2 | the second source Publisher |
source3 | the third source Publisher |
source4 | the fourth source Publisher |
source5 | the fifth source Publisher |
source6 | the sixth source Publisher |
combiner | the aggregation function used to combine the items emitted by the source Publishers |
Combines a collection of source Publishers by emitting an item that aggregates the latest values of each of the source Publishers each time an item is received from any of the source Publisher, where this aggregation is defined by a specified function and delays any error from the sources until all source Publishers terminate.
Note on method signature: since Java doesn't allow creating a generic array with new T[]
, the
implementation of this operator has to create an Object[]
instead. Unfortunately, a
Function<Integer[], R>
passed to the method would trigger a ClassCastException
.
If any of the sources never produces an item but only terminates (normally or with an error), the resulting sequence terminates immediately (normally or with all the errors accumulated till that point). If that input source is also synchronous, other sources after it will not be subscribed to.
If there are no source Publishers provided, the resulting sequence completes immediately without emitting any items and without any calls to the combiner function.
Publisher
honors backpressure from downstream. The source Publisher
s
are requested in a bounded manner, however, their backpressure is not enforced (the operator won't signal
MissingBackpressureException
) and may lead to OutOfMemoryError
due to internal buffer bloat.combineLatestDelayError
does not operate by default on a particular Scheduler
.combiner | the aggregation function used to combine the items emitted by the source Publishers |
---|---|
bufferSize | the internal buffer size and prefetch amount applied to every source Publisher |
sources | the collection of source Publishers |
Combines a collection of source Publishers by emitting an item that aggregates the latest values of each of the source Publishers each time an item is received from any of the source Publishers, where this aggregation is defined by a specified function.
Note on method signature: since Java doesn't allow creating a generic array with new T[]
, the
implementation of this operator has to create an Object[]
instead. Unfortunately, a
Function<Integer[], R>
passed to the method would trigger a ClassCastException
.
If any of the sources never produces an item but only terminates (normally or with an error), the resulting sequence terminates immediately (normally or with all the errors accumulated till that point). If that input source is also synchronous, other sources after it will not be subscribed to.
If the provided array of source Publishers is empty, the resulting sequence completes immediately without emitting any items and without any calls to the combiner function.
Publisher
honors backpressure from downstream. The source Publisher
s
are requested in a bounded manner, however, their backpressure is not enforced (the operator won't signal
MissingBackpressureException
) and may lead to OutOfMemoryError
due to internal buffer bloat.combineLatestDelayError
does not operate by default on a particular Scheduler
.sources | the collection of source Publishers |
---|---|
combiner | the aggregation function used to combine the items emitted by the source Publishers |
Combines a collection of source Publishers by emitting an item that aggregates the latest values of each of the source Publishers each time an item is received from any of the source Publishers, where this aggregation is defined by a specified function and delays any error from the sources until all source Publishers terminate.
Note on method signature: since Java doesn't allow creating a generic array with new T[]
, the
implementation of this operator has to create an Object[]
instead. Unfortunately, a
Function<Integer[], R>
passed to the method would trigger a ClassCastException
.
If any of the sources never produces an item but only terminates (normally or with an error), the resulting sequence terminates immediately (normally or with all the errors accumulated till that point). If that input source is also synchronous, other sources after it will not be subscribed to.
If the provided array of source Publishers is empty, the resulting sequence completes immediately without emitting any items and without any calls to the combiner function.
Publisher
honors backpressure from downstream. The source Publisher
s
are requested in a bounded manner, however, their backpressure is not enforced (the operator won't signal
MissingBackpressureException
) and may lead to OutOfMemoryError
due to internal buffer bloat.combineLatestDelayError
does not operate by default on a particular Scheduler
.sources | the collection of source Publishers |
---|---|
combiner | the aggregation function used to combine the items emitted by the source Publishers |
bufferSize | the internal buffer size and prefetch amount applied to every source Flowable |
Combines a collection of source Publishers by emitting an item that aggregates the latest values of each of the source Publishers each time an item is received from any of the source Publishers, where this aggregation is defined by a specified function and delays any error from the sources until all source Publishers terminate.
Note on method signature: since Java doesn't allow creating a generic array with new T[]
, the
implementation of this operator has to create an Object[]
instead. Unfortunately, a
Function<Integer[], R>
passed to the method would trigger a ClassCastException
.
If any of the sources never produces an item but only terminates (normally or with an error), the resulting sequence terminates immediately (normally or with all the errors accumulated till that point). If that input source is also synchronous, other sources after it will not be subscribed to.
If the provided iterable of source Publishers is empty, the resulting sequence completes immediately without emitting any items and without any calls to the combiner function.
Publisher
honors backpressure from downstream. The source Publisher
s
are requested in a bounded manner, however, their backpressure is not enforced (the operator won't signal
MissingBackpressureException
) and may lead to OutOfMemoryError
due to internal buffer bloat.combineLatestDelayError
does not operate by default on a particular Scheduler
.sources | the collection of source Publishers |
---|---|
combiner | the aggregation function used to combine the items emitted by the source Publishers |
Combines a collection of source Publishers by emitting an item that aggregates the latest values of each of the source Publishers each time an item is received from any of the source Publishers, where this aggregation is defined by a specified function and delays any error from the sources until all source Publishers terminate.
Note on method signature: since Java doesn't allow creating a generic array with new T[]
, the
implementation of this operator has to create an Object[]
instead. Unfortunately, a
Function<Integer[], R>
passed to the method would trigger a ClassCastException
.
If any of the sources never produces an item but only terminates (normally or with an error), the resulting sequence terminates immediately (normally or with all the errors accumulated till that point). If that input source is also synchronous, other sources after it will not be subscribed to.
If the provided iterable of source Publishers is empty, the resulting sequence completes immediately without emitting any items and without any calls to the combiner function.
Publisher
honors backpressure from downstream. The source Publisher
s
are requested in a bounded manner, however, their backpressure is not enforced (the operator won't signal
MissingBackpressureException
) and may lead to OutOfMemoryError
due to internal buffer bloat.combineLatestDelayError
does not operate by default on a particular Scheduler
.sources | the collection of source Publishers |
---|---|
combiner | the aggregation function used to combine the items emitted by the source Publishers |
bufferSize | the internal buffer size and prefetch amount applied to every source Flowable |
Combines a collection of source Publishers by emitting an item that aggregates the latest values of each of the source Publishers each time an item is received from any of the source Publishers, where this aggregation is defined by a specified function and delays any error from the sources until all source Publishers terminate.
Note on method signature: since Java doesn't allow creating a generic array with new T[]
, the
implementation of this operator has to create an Object[]
instead. Unfortunately, a
Function<Integer[], R>
passed to the method would trigger a ClassCastException
.
If any of the sources never produces an item but only terminates (normally or with an error), the resulting sequence terminates immediately (normally or with all the errors accumulated till that point). If that input source is also synchronous, other sources after it will not be subscribed to.
If there are no source Publishers provided, the resulting sequence completes immediately without emitting any items and without any calls to the combiner function.
Publisher
honors backpressure from downstream. The source Publisher
s
are requested in a bounded manner, however, their backpressure is not enforced (the operator won't signal
MissingBackpressureException
) and may lead to OutOfMemoryError
due to internal buffer bloat.combineLatestDelayError
does not operate by default on a particular Scheduler
.combiner | the aggregation function used to combine the items emitted by the source Publishers |
---|---|
sources | the collection of source Publishers |
Transform a Publisher by applying a particular Transformer function to it.
This method operates on the Publisher itself whereas lift(FlowableOperator extends R, ? super T>)
operates on the Publisher's
Subscribers or Subscribers.
If the operator you are creating is designed to act on the individual items emitted by a source
Publisher, use lift(FlowableOperator extends R, ? super T>)
. If your operator is designed to transform the source Publisher as a whole
(for instance, by applying a particular set of existing RxJava operators to it) use compose
.
Publisher
the transformer returns.compose
does not operate by default on a particular Scheduler
.composer | implements the function that transforms the source Publisher |
---|
Returns a Flowable that emits the items emitted by three Publishers, one after the other, without interleaving them.
Publisher
sources are expected to honor backpressure as well.
If any of the source Publisher
s violate this, it may throw an
IllegalStateException
when the source Publisher
completes.concat
does not operate by default on a particular Scheduler
.source1 | a Publisher to be concatenated |
---|---|
source2 | a Publisher to be concatenated |
source3 | a Publisher to be concatenated |
Concatenates elements of each Publisher provided via an Iterable sequence into a single sequence of elements without interleaving them.
Publisher
sources are expected to honor backpressure as well.
If any of the source Publisher
s violate this, it may throw an
IllegalStateException
when the source Publisher
completes.concat
does not operate by default on a particular Scheduler
.sources | the Iterable sequence of Publishers |
---|
Returns a Flowable that emits the items emitted by four Publishers, one after the other, without interleaving them.
Publisher
sources are expected to honor backpressure as well.
If any of the source Publisher
s violate this, it may throw an
IllegalStateException
when the source Publisher
completes.concat
does not operate by default on a particular Scheduler
.source1 | a Publisher to be concatenated |
---|---|
source2 | a Publisher to be concatenated |
source3 | a Publisher to be concatenated |
source4 | a Publisher to be concatenated |
Returns a Flowable that emits the items emitted by each of the Publishers emitted by the source Publisher, one after the other, without interleaving them.
Publisher
sources are expected to honor backpressure as well. If the outer violates this, a
MissingBackpressureException
is signalled. If any of the inner Publisher
s violates
this, it may throw an IllegalStateException
when an inner Publisher
completes.concat
does not operate by default on a particular Scheduler
.sources | a Publisher that emits Publishers |
---|---|
prefetch | the number of Publishers to prefetch from the sources sequence. |
Publishers
, one after the other, without interleaving themReturns a Flowable that emits the items emitted by each of the Publishers emitted by the source Publisher, one after the other, without interleaving them.
Publisher
sources are expected to honor backpressure as well. If the outer violates this, a
MissingBackpressureException
is signalled. If any of the inner Publisher
s violates
this, it may throw an IllegalStateException
when an inner Publisher
completes.concat
does not operate by default on a particular Scheduler
.sources | a Publisher that emits Publishers |
---|
Publishers
, one after the other, without interleaving themReturns a Flowable that emits the items emitted by two Publishers, one after the other, without interleaving them.
Publisher
sources are expected to honor backpressure as well.
If any of the source Publisher
s violate this, it may throw an
IllegalStateException
when the source Publisher
completes.concat
does not operate by default on a particular Scheduler
.source1 | a Publisher to be concatenated |
---|---|
source2 | a Publisher to be concatenated |
Concatenates a variable number of Publisher sources.
Note: named this way because of overload conflict with concat(Publisher<Publisher>).
Publisher
sources are expected to honor backpressure as well.
If any of the source Publisher
s violate this, it may throw an
IllegalStateException
when the source Publisher
completes.concatArray
does not operate by default on a particular Scheduler
.sources | the array of sources |
---|
NullPointerException | if sources is null |
---|
Concatenates a variable number of Publisher sources and delays errors from any of them till all terminate.
Publisher
sources are expected to honor backpressure as well.
If any of the source Publisher
s violate this, it may throw an
IllegalStateException
when the source Publisher
completes.concatArrayDelayError
does not operate by default on a particular Scheduler
.sources | the array of sources |
---|
NullPointerException | if sources is null |
---|
Concatenates a sequence of Publishers eagerly into a single stream of values.
Eager concatenation means that once a subscriber subscribes, this operator subscribes to all of the source Publishers. The operator buffers the values emitted by these Publishers and then drains them in order, each one after the previous one completes.
Publisher
sources are expected to honor backpressure as well.
If any of the source Publisher
s violate this, the operator will signal a
MissingBackpressureException
.Scheduler
.maxConcurrency | the maximum number of concurrent subscriptions at a time, Integer.MAX_VALUE is interpreted as indication to subscribe to all sources at once |
---|---|
prefetch | the number of elements to prefetch from each Publisher source |
sources | a sequence of Publishers that need to be eagerly concatenated |
Concatenates a sequence of Publishers eagerly into a single stream of values.
Eager concatenation means that once a subscriber subscribes, this operator subscribes to all of the source Publishers. The operator buffers the values emitted by these Publishers and then drains them in order, each one after the previous one completes.
Publisher
sources are expected to honor backpressure as well.
If any of the source Publisher
s violate this, the operator will signal a
MissingBackpressureException
.Scheduler
.sources | a sequence of Publishers that need to be eagerly concatenated |
---|
Concatenates the Publisher sequence of Publishers into a single sequence by subscribing to each inner Publisher, one after the other, one at a time and delays any errors till the all inner and the outer Publishers terminate.
concatDelayError
fully supports backpressure.concatDelayError
does not operate by default on a particular Scheduler
.sources | the Publisher sequence of Publishers |
---|---|
prefetch | the number of elements to prefetch from the outer Publisher |
tillTheEnd | if true exceptions from the outer and all inner Publishers are delayed to the end if false, exception from the outer Publisher is delayed till the current Publisher terminates |
Concatenates the Iterable sequence of Publishers into a single sequence by subscribing to each Publisher, one after the other, one at a time and delays any errors till the all inner Publishers terminate.
Publisher
sources are expected to honor backpressure as well. If the outer violates this, a
MissingBackpressureException
is signalled. If any of the inner Publisher
s violates
this, it may throw an IllegalStateException
when an inner Publisher
completes.concatDelayError
does not operate by default on a particular Scheduler
.sources | the Iterable sequence of Publishers |
---|
Concatenates the Publisher sequence of Publishers into a single sequence by subscribing to each inner Publisher, one after the other, one at a time and delays any errors till the all inner and the outer Publishers terminate.
concatDelayError
fully supports backpressure.concatDelayError
does not operate by default on a particular Scheduler
.sources | the Publisher sequence of Publishers |
---|
Concatenates a sequence of Publishers eagerly into a single stream of values.
Eager concatenation means that once a subscriber subscribes, this operator subscribes to all of the source Publishers. The operator buffers the values emitted by these Publishers and then drains them in order, each one after the previous one completes.
MissingBackpressureException
.Scheduler
.sources | a sequence of Publishers that need to be eagerly concatenated |
---|
Concatenates a Publisher sequence of Publishers eagerly into a single stream of values.
Eager concatenation means that once a subscriber subscribes, this operator subscribes to all of the emitted source Publishers as they are observed. The operator buffers the values emitted by these Publishers and then drains them in order, each one after the previous one completes.
MissingBackpressureException
.Scheduler
.sources | a sequence of Publishers that need to be eagerly concatenated |
---|---|
maxConcurrency | the maximum number of concurrently running inner Publishers; Integer.MAX_VALUE is interpreted as all inner Publishers can be active at the same time |
prefetch | the number of elements to prefetch from each inner Publisher source |
Concatenates a Publisher sequence of Publishers eagerly into a single stream of values.
Eager concatenation means that once a subscriber subscribes, this operator subscribes to all of the emitted source Publishers as they are observed. The operator buffers the values emitted by these Publishers and then drains them in order, each one after the previous one completes.
MissingBackpressureException
.Scheduler
.sources | a sequence of Publishers that need to be eagerly concatenated |
---|
Concatenates a sequence of Publishers eagerly into a single stream of values.
Eager concatenation means that once a subscriber subscribes, this operator subscribes to all of the source Publishers. The operator buffers the values emitted by these Publishers and then drains them in order, each one after the previous one completes.
MissingBackpressureException
.Scheduler
.sources | a sequence of Publishers that need to be eagerly concatenated |
---|---|
maxConcurrency | the maximum number of concurrently running inner Publishers; Integer.MAX_VALUE is interpreted as all inner Publishers can be active at the same time |
prefetch | the number of elements to prefetch from each inner Publisher source |
Returns a new Flowable that emits items resulting from applying a function that you supply to each item emitted by the source Publisher, where that function returns a Publisher, and then emitting the items that result from concatenating those resulting Publishers.
Publisher
s are
expected to honor backpressure as well. If the source Publisher
violates the rule, the operator will
signal a MissingBackpressureException
. If any of the inner Publisher
s doesn't honor
backpressure, that may throw an IllegalStateException
when that
Publisher
completes.concatMap
does not operate by default on a particular Scheduler
.mapper | a function that, when applied to an item emitted by the source Publisher, returns an Publisher |
---|---|
prefetch | the number of elements to prefetch from the current Flowable |
Returns a new Flowable that emits items resulting from applying a function that you supply to each item emitted by the source Publisher, where that function returns a Publisher, and then emitting the items that result from concatenating those resulting Publishers.
Publisher
s are
expected to honor backpressure as well. If the source Publisher
violates the rule, the operator will
signal a MissingBackpressureException
. If any of the inner Publisher
s doesn't honor
backpressure, that may throw an IllegalStateException
when that
Publisher
completes.concatMap
does not operate by default on a particular Scheduler
.mapper | a function that, when applied to an item emitted by the source Publisher, returns an Publisher |
---|
Maps each of the items into a Publisher, 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 Publishers till all of them terminate.
Publisher
s are
expected to honor backpressure as well. If the source Publisher
violates the rule, the operator will
signal a MissingBackpressureException
. If any of the inner Publisher
s doesn't honor
backpressure, that may throw an IllegalStateException
when that
Publisher
completes.concatMapDelayError
does not operate by default on a particular Scheduler
.mapper | the function that maps the items of this Publisher into the inner Publishers. |
---|---|
prefetch | the number of elements to prefetch from the current Flowable |
tillTheEnd | if true, all errors from the outer and inner Publisher sources are delayed until the end, if false, an error from the main source is signalled when the current Publisher source terminates |
Maps each of the items into a Publisher, 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 Publishers till all of them terminate.
Publisher
s are
expected to honor backpressure as well. If the source Publisher
violates the rule, the operator will
signal a MissingBackpressureException
. If any of the inner Publisher
s doesn't honor
backpressure, that may throw an IllegalStateException
when that
Publisher
completes.concatMapDelayError
does not operate by default on a particular Scheduler
.mapper | the function that maps the items of this Publisher into the inner Publishers. |
---|
Maps a sequence of values into Publishers and concatenates these Publishers eagerly into a single Publisher.
Eager concatenation means that once a subscriber subscribes, this operator subscribes to all of the source Publishers. The operator buffers the values emitted by these Publishers and then drains them in order, each one after the previous one completes.
Scheduler
.mapper | the function that maps a sequence of values into a sequence of Publishers that will be eagerly concatenated |
---|
Maps a sequence of values into Publishers and concatenates these Publishers eagerly into a single Publisher.
Eager concatenation means that once a subscriber subscribes, this operator subscribes to all of the source Publishers. The operator buffers the values emitted by these Publishers and then drains them in order, each one after the previous one completes.
Scheduler
.mapper | the function that maps a sequence of values into a sequence of Publishers that will be eagerly concatenated |
---|---|
maxConcurrency | the maximum number of concurrent subscribed Publishers |
prefetch | hints about the number of expected values from each inner Publisher, must be positive |
Maps a sequence of values into Publishers and concatenates these Publishers eagerly into a single Publisher.
Eager concatenation means that once a subscriber subscribes, this operator subscribes to all of the source Publishers. The operator buffers the values emitted by these Publishers and then drains them in order, each one after the previous one completes.
Scheduler
.mapper | the function that maps a sequence of values into a sequence of Publishers that will be eagerly concatenated |
---|---|
tillTheEnd | if true, all errors from the outer and inner Publisher sources are delayed until the end, if false, an error from the main source is signalled when the current Publisher source terminates |
Maps a sequence of values into Publishers and concatenates these Publishers eagerly into a single Publisher.
Eager concatenation means that once a subscriber subscribes, this operator subscribes to all of the source Publishers. The operator buffers the values emitted by these Publishers and then drains them in order, each one after the previous one completes.
Scheduler
.mapper | the function that maps a sequence of values into a sequence of Publishers that will be eagerly concatenated |
---|---|
maxConcurrency | the maximum number of concurrent subscribed Publishers |
prefetch | the number of elements to prefetch from each source Publisher |
tillTheEnd | if true, exceptions from the current Flowable and all the inner Publishers are delayed until all of them terminate, if false, exception from the current Flowable is delayed until the currently running Publisher terminates |
Returns a Flowable that concatenate each item emitted by the source Publisher with the values in an Iterable corresponding to that item that is generated by a selector.
Publisher
s is
expected to honor backpressure as well. If the source Publisher
violates the rule, the operator will
signal a MissingBackpressureException
.concatMapIterable
does not operate by default on a particular Scheduler
.mapper | a function that returns an Iterable sequence of values for when given an item emitted by the source Publisher |
---|
collectionSelector
Returns a Flowable that concatenate each item emitted by the source Publisher with the values in an Iterable corresponding to that item that is generated by a selector.
Publisher
s is
expected to honor backpressure as well. If the source Publisher
violates the rule, the operator will
signal a MissingBackpressureException
.concatMapIterable
does not operate by default on a particular Scheduler
.mapper | a function that returns an Iterable sequence of values for when given an item emitted by the source Publisher |
---|---|
prefetch | the number of elements to prefetch from the current Flowable |
collectionSelector
Returns a Flowable that emits the items emitted from the current Publisher, then the next, one after the other, without interleaving them.
other
Publisher
s
are expected to honor backpressure as well. If any of then violates this rule, it may throw an
IllegalStateException
when the source Publisher
completes.concatWith
does not operate by default on a particular Scheduler
.other | a Publisher to be concatenated after the current |
---|
Returns a Single that emits a Boolean that indicates whether the source Publisher emitted a specified item.
Publisher
in an
unbounded manner (i.e., without applying backpressure).contains
does not operate by default on a particular Scheduler
.item | the item to search for in the emissions from the source Publisher |
---|
true
if the specified item is emitted by the source Publisher,
or false
if the source Publisher completes without emitting that itemReturns a Single that counts the total number of items emitted by the source Publisher and emits this count as a 64-bit Long.
Publisher
in an
unbounded manner (i.e., without applying backpressure).count
does not operate by default on a particular Scheduler
.Provides an API (via a cold Flowable) that bridges the reactive world with the callback-style, generally non-backpressured world.
Example:
Flowable.<Event>create(emitter -> {
Callback listener = new Callback() {
@Override
public void onEvent(Event e) {
emitter.onNext(e);
if (e.isLast()) {
emitter.onComplete();
}
}
@Override
public void onFailure(Exception e) {
emitter.onError(e);
}
};
AutoCloseable c = api.someMethod(listener);
emitter.setCancellable(c::close);
}, BackpressureStrategy.BUFFER);
You should call the FlowableEmitter onNext, onError and onComplete methods in a serialized fashion. The rest of its methods are thread-safe.
mode
parameter.create
does not operate by default on a particular Scheduler
.source | the emitter that is called when a Subscriber subscribes to the returned Flowable |
---|---|
mode | the backpressure mode to apply if the downstream Subscriber doesn't request (fast) enough |
Returns a Flowable that mirrors the source Publisher, except that it drops items emitted by the source Publisher that are followed by newer items before a timeout value expires. The timer resets on each emission.
Note: If items keep being emitted by the source Publisher faster than the timeout then no items will be emitted by the resulting Publisher.
Information on debounce vs throttle:
debounce
operates by default on the computation
Scheduler
.timeout | the time each item has to be "the most recent" of those emitted by the source Publisher to ensure that it's not dropped |
---|---|
unit | the TimeUnit for the timeout |
Returns a Flowable that mirrors the source Publisher, except that it drops items emitted by the source Publisher that are followed by newer items before a timeout value expires on a specified Scheduler. The timer resets on each emission.
Note: If items keep being emitted by the source Publisher faster than the timeout then no items will be emitted by the resulting Publisher.
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 Publisher to ensure that it's not dropped |
---|---|
unit | the unit of time for the specified timeout |
scheduler | the Scheduler to use internally to manage the timers that handle the timeout for each
item |
Returns a Flowable that mirrors the source Publisher, except that it drops items emitted by the source Publisher that are followed by another item within a computed debounce duration.
debounceSelector
to mark
boundaries.debounce
does not operate by default on a particular Scheduler
.debounceIndicator | function to retrieve a sequence that indicates the throttle duration for each item |
---|
Returns a Flowable that emits the items emitted by the source Publisher or a specified default item if the source Publisher is empty.
Publisher
is empty, this operator is guaranteed to honor backpressure from downstream.
If the source Publisher
is non-empty, it is expected to honor backpressure as well; if the rule is violated,
a MissingBackpressureException
may get signalled somewhere downstream.
defaultIfEmpty
does not operate by default on a particular Scheduler
.defaultItem | the item to emit if the source Publisher emits no items |
---|
Returns a Flowable that calls a Publisher factory to create a Publisher for each new Subscriber that subscribes. That is, for each subscriber, the actual Publisher that subscriber observes is determined by the factory function.
The defer Subscriber allows you to defer or delay emitting items from a Publisher until such time as an Subscriber subscribes to the Publisher. This allows a Subscriber to easily obtain updates or a refreshed version of the sequence.
Publisher
returned by the supplier
.defer
does not operate by default on a particular Scheduler
.supplier | the Publisher factory function to invoke for each Subscriber that subscribes to the resulting Publisher |
---|
Returns a Flowable that emits the items emitted by the source Publisher shifted forward in time by a specified delay. Error notifications from the source Publisher are not delayed.
Publisher
.delay
operates by default on the computation
Scheduler
.delay | the delay to shift the source by |
---|---|
unit | the TimeUnit in which period is defined |
delayError | if true, the upstream exception is signalled with the given delay, after all preceding normal elements, if false, the upstream exception is signalled immediately |
Returns a Flowable that delays the subscription to and emissions from the source Publisher via another Publisher on a per-item basis.
Note: the resulting Publisher will immediately propagate any onError
notification
from the source Publisher.
Publisher
.
All of the other Publisher
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 particular Scheduler
.subscriptionIndicator | a function that returns a Publisher that triggers the subscription to the source Publisher once it emits any item |
---|---|
itemDelayIndicator | a function that returns a Publisher for each item emitted by the source Publisher, which is
then used to delay the emission of that item by the resulting Publisher until the Publisher
returned from itemDelay emits an item |
Returns a Flowable that emits the items emitted by the source Publisher shifted forward in time by a specified delay. Error notifications from the source Publisher are not delayed.
Publisher
.Scheduler
this operator will usedelay | the delay to shift the source by |
---|---|
unit | the time unit of delay |
scheduler | the Scheduler to use for delaying |
Returns a Flowable that emits the items emitted by the source Publisher shifted forward in time by a specified delay. Error notifications from the source Publisher are not delayed.
Publisher
.Scheduler
this operator will usedelay | the delay to shift the source by |
---|---|
unit | the time unit of delay |
scheduler | the Scheduler to use for delaying |
delayError | if true, the upstream exception is signalled with the given delay, after all preceding normal elements, if false, the upstream exception is signalled immediately |
Returns a Flowable that delays the emissions of the source Publisher via another Publisher on a per-item basis.
Note: the resulting Publisher will immediately propagate any onError
notification
from the source Publisher.
Publisher
.
All of the other Publisher
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 particular Scheduler
.itemDelayIndicator | a function that returns a Publisher for each item emitted by the source Publisher, which is
then used to delay the emission of that item by the resulting Publisher until the Publisher
returned from itemDelay emits an item |
---|
Returns a Flowable that emits the items emitted by the source Publisher shifted forward in time by a specified delay. Error notifications from the source Publisher are not delayed.
Publisher
.delay
operates by default on the computation
Scheduler
.delay | the delay to shift the source by |
---|---|
unit | the TimeUnit in which period is defined |
Returns a Flowable that delays the subscription to this Publisher until the other Publisher emits an element or completes normally.
Scheduler
.subscriptionIndicator | the other Publisher that should trigger the subscription to this Publisher. |
---|
Returns a Flowable that delays the subscription to the source Publisher by a given amount of time, both waiting and subscribing on a given Scheduler.
Publisher
.Scheduler
this operator will usedelay | the time to delay the subscription |
---|---|
unit | the time unit of delay |
scheduler | the Scheduler on which the waiting and subscription will happen |
Returns a Flowable that delays the subscription to the source Publisher by a given amount of time.
Publisher
.delaySubscription
operates by default on the computation
Scheduler
.delay | the time to delay the subscription |
---|---|
unit | the time unit of delay |
Returns a Flowable that reverses the effect of materialize
by transforming the
Notification
objects emitted by the source Publisher into the items or notifications they
represent.
Publisher
's
backpressure behavior.dematerialize
does not operate by default on a particular Scheduler
.Notification
objects
emitted by the source PublisherReturns a Flowable that emits all items emitted by the source Publisher that are distinct.
Publisher
's
backpressure behavior.distinct
does not operate by default on a particular Scheduler
.Returns a Flowable that emits all items emitted by the source Publisher that are distinct according to a key selector function.
Publisher
's
backpressure behavior.distinct
does not operate by default on a particular Scheduler
.keySelector | 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 not |
---|
Returns a Flowable that emits all items emitted by the source Publisher that are distinct according to a key selector function.
Publisher
's
backpressure behavior.distinct
does not operate by default on a particular Scheduler
.keySelector | 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 not |
---|---|
collectionSupplier | function called for each individual Subscriber to return a Collection subtype for holding the extracted keys and whose add() method's return indicates uniqueness. |
Returns a Flowable that emits all items emitted by the source Publisher that are distinct from their immediate predecessors when compared with each other via the provided comparator function.
Publisher
's
backpressure behavior.distinctUntilChanged
does not operate by default on a particular Scheduler
.comparer | 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. |
---|
Returns a Flowable that emits all items emitted by the source Publisher that are distinct from their immediate predecessors, according to a key selector function.
Publisher
's
backpressure behavior.distinctUntilChanged
does not operate by default on a particular Scheduler
.keySelector | 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 not |
---|
Returns a Flowable that emits all items emitted by the source Publisher that are distinct from their immediate predecessors.
Publisher
's
backpressure behavior.distinctUntilChanged
does not operate by default on a particular Scheduler
.Calls the specified consumer with the current item after this item has been emitted to the downstream.
Note that the onAfterNext
action is shared between subscriptions and as such
should be thread-safe.
Publisher
's backpressure
behavior.doAfterNext
does not operate by default on a particular Scheduler
.History: 2.0.1 - experimental
onAfterNext | the Consumer that will be called after emitting an item from upstream to the downstream |
---|
Registers an Action
to be called when this Publisher invokes either
onComplete
or onError
.
Publisher
's backpressure
behavior.doAfterTerminate
does not operate by default on a particular Scheduler
.onAfterTerminate | an Action to be invoked when the source Publisher finishes |
---|
Action
Calls the specified action after this Flowable signals onError or onCompleted or gets cancelled by the downstream.
In case of a race between a terminal event and a cancellation, the provided onFinally
action
is executed once per subscription.
Note that the onFinally
action is shared between subscriptions and as such
should be thread-safe.
Publisher
's backpressure
behavior.doFinally
does not operate by default on a particular Scheduler
.History: 2.0.1 - experimental
onFinally | the action called when this Flowable terminates or gets cancelled |
---|
Calls the cancel Action
if the downstream cancels 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 the onCancel()
call,
sometimes as a CompositeException
if there were multiple exceptions along the way.
Note that terminal events trigger the action unless the Publisher
is subscribed to via unsafeSubscribe()
.
doOnCancel
does not interact with backpressure requests or value delivery; backpressure
behavior is preserved between its upstream and its downstream.doOnCancel
does not operate by default on a particular Scheduler
.onCancel | the action that gets called when the source Publisher 's Subscription is cancelled |
---|
Publisher
modified so as to call this Action when appropriateModifies the source Publisher so that it invokes an action when it calls onComplete
.
Publisher
's
backpressure behavior.doOnComplete
does not operate by default on a particular Scheduler
.onComplete | the action to invoke when the source Publisher calls onComplete |
---|
Modifies the source Publisher so that it invokes an action for each item it emits.
Publisher
's
backpressure behavior.doOnEach
does not operate by default on a particular Scheduler
.onNotification | the action to invoke for each item emitted by the source Publisher |
---|
Modifies the source Publisher so that it notifies a Subscriber for each item and terminal event it emits.
In case the onError
of the supplied Subscriber throws, the downstream will receive a composite
exception containing the original exception and the exception thrown by onError
. If either the
onNext
or the onComplete
method of the supplied Subscriber throws, the downstream will be
terminated and will receive this thrown exception.
Publisher
's
backpressure behavior.doOnEach
does not operate by default on a particular Scheduler
.subscriber | the Subscriber to be notified about onNext, onError and onComplete events on its respective methods before the actual downstream Subscriber gets notified. |
---|
Modifies the source Publisher so that it invokes an action if it calls onError
.
In case the onError
action throws, the downstream will receive a composite exception containing
the original exception and the exception thrown by onError
.
Publisher
's
backpressure behavior.doOnError
does not operate by default on a particular Scheduler
.onError | the action to invoke if the source Publisher calls onError |
---|
Calls the appropriate onXXX method (shared between all Subscribers) for the lifecycle events of the sequence (subscription, cancellation, requesting).
Publisher
's
backpressure behavior.doOnLifecycle
does not operate by default on a particular Scheduler
.onSubscribe | a Consumer called with the Subscription sent via Subscriber.onSubscribe() |
---|---|
onRequest | a LongConsumer called with the request amount sent via Subscription.request() |
onCancel | called when the downstream cancels the Subscription via cancel() |
Modifies the source Publisher so that it invokes an action when it calls onNext
.
Publisher
's
backpressure behavior.doOnNext
does not operate by default on a particular Scheduler
.onNext | the action to invoke when the source Publisher calls onNext |
---|
Modifies the source Publisher
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.
Publisher
's
backpressure behavior.doOnRequest
does not operate by default on a particular Scheduler
.onRequest | the action that gets called when a Subscriber requests items from this
Publisher |
---|
Publisher
modified so as to call this Action when appropriateModifies the source Publisher
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
source Publisher
is reference counted, in which case the source Publisher
will invoke
the given action for the first subscription.
Publisher
's
backpressure behavior.doOnSubscribe
does not operate by default on a particular Scheduler
.onSubscribe | the Consumer that gets called when a Subscriber subscribes to the current Flowable |
---|
Publisher
modified so as to call this Consumer when appropriateModifies the source Publisher so that it invokes an action when it calls onComplete
or
onError
.
This differs from doAfterTerminate
in that this happens before the onComplete
or
onError
notification.
Publisher
's
backpressure behavior.doOnTerminate
does not operate by default on a particular Scheduler
.onTerminate | the action to invoke when the source Publisher calls onComplete or onError |
---|
Returns a Flowable that emits the item found at a specified index in a sequence of emissions from this Flowable, or a default item if that index is out of range.
Publisher
in an unbounded manner
(i.e., no backpressure applied to it).elementAt
does not operate by default on a particular Scheduler
.index | the zero-based index of the item to retrieve |
---|---|
defaultItem | the default item |
IndexOutOfBoundsException | if index is less than 0 |
---|
Returns a Maybe that emits the single item at a specified index in a sequence of emissions from this Flowable or completes if this Flowable sequence has fewer elements than index.
Publisher
in an unbounded manner
(i.e., no backpressure applied to it).elementAt
does not operate by default on a particular Scheduler
.index | the zero-based index of the item to retrieve |
---|
Returns a Flowable that emits the item found at a specified index in a sequence of emissions from
this Flowable or signals a NoSuchElementException
if this Flowable has fewer elements than index.
Publisher
in an unbounded manner
(i.e., no backpressure applied to it).elementAtOrError
does not operate by default on a particular Scheduler
.index | the zero-based index of the item to retrieve |
---|
IndexOutOfBoundsException | if index is less than 0 |
---|
Returns a Flowable that emits no items to the Subscriber and immediately invokes its
onComplete
method.
empty
does not operate by default on a particular Scheduler
.onComplete
methodReturns a Flowable that invokes a Subscriber's onError
method when the
Subscriber subscribes to it.
error
does not operate by default on a particular Scheduler
.supplier | a Callable factory to return a Throwable for each individual Subscriber |
---|
onError
method when
the Subscriber subscribes to itReturns a Flowable that invokes a Subscriber's onError
method when the
Subscriber subscribes to it.
error
does not operate by default on a particular Scheduler
.throwable | the particular Throwable to pass to onError |
---|
onError
method when
the Subscriber subscribes to itFilters items emitted by a Publisher by only emitting those that satisfy a specified predicate.
Publisher
's backpressure
behavior.filter
does not operate by default on a particular Scheduler
.predicate | a function that evaluates each item emitted by the source Publisher, returning true
if it passes the filter |
---|
true
Returns a Single that emits only the very first item emitted by this Flowable, or a default item if this Flowable completes without emitting anything.
Publisher
in an
unbounded manner (i.e., without applying backpressure).first
does not operate by default on a particular Scheduler
.defaultItem | the default item to emit if the source Publisher doesn't emit anything |
---|
Returns a Maybe that emits only the very first item emitted by this Flowable or completes if this Flowable is empty.
Publisher
in an
unbounded manner (i.e., without applying backpressure).firstElement
does not operate by default on a particular Scheduler
.Returns a Single that emits only the very first item emitted by this Flowable or
signals a NoSuchElementException
if this Flowable is empty.
Publisher
in an
unbounded manner (i.e., without applying backpressure).firstOrError
does not operate by default on a particular Scheduler
.Returns a Flowable that applies a function to each item emitted or notification raised by the source Publisher and then flattens the Publishers returned from these functions and emits the resulting items, while limiting the maximum number of concurrent subscriptions to these Publishers.
maxConcurrency
outstanding request amount for items).
The inner Publisher
s are expected to honor backpressure; if violated,
the operator may signal MissingBackpressureException
.flatMap
does not operate by default on a particular Scheduler
.onNextMapper | a function that returns a Publisher to merge for each item emitted by the source Publisher |
---|---|
onErrorMapper | a function that returns a Publisher to merge for an onError notification from the source Publisher |
onCompleteSupplier | a function that returns a Publisher to merge for an onComplete notification from the source Publisher |
maxConcurrency | the maximum number of Publishers that may be subscribed to concurrently |
Returns a Flowable that emits the results of a specified function to the pair of values emitted by the source Publisher and a specified collection Publisher, while limiting the maximum number of concurrent subscriptions to these Publishers.
maxConcurrency
outstanding request amount for items).
The inner Publisher
s are expected to honor backpressure; if violated,
the operator may signal MissingBackpressureException
.flatMap
does not operate by default on a particular Scheduler
.mapper | a function that returns a Publisher for each item emitted by the source Publisher |
---|---|
combiner | a function that combines one item emitted by each of the source and collection Publishers and returns an item to be emitted by the resulting Publisher |
delayErrors | if true, exceptions from the current Flowable and all inner Publishers are delayed until all of them terminate if false, the first one signalling an exception will terminate the whole sequence immediately |
maxConcurrency | the maximum number of Publishers that may be subscribed to concurrently |
Returns a Flowable that emits the results of a specified function to the pair of values emitted by the source Publisher and a specified collection Publisher, while limiting the maximum number of concurrent subscriptions to these Publishers.
bufferSize()
outstanding request amount for items).
The inner Publisher
s are expected to honor backpressure; if violated,
the operator may signal MissingBackpressureException
.flatMap
does not operate by default on a particular Scheduler
.mapper | a function that returns a Publisher for each item emitted by the source Publisher |
---|---|
combiner | a function that combines one item emitted by each of the source and collection Publishers and returns an item to be emitted by the resulting Publisher |
maxConcurrency | the maximum number of Publishers that may be subscribed to concurrently |
Returns a Flowable that emits items based on applying a function that you supply to each item emitted by the source Publisher, where that function returns a Publisher, and then merging those resulting Publishers and emitting the results of this merger, while limiting the maximum number of concurrent subscriptions to these Publishers.
maxConcurrency
outstanding request amount for items).
The inner Publisher
s are expected to honor backpressure; if violated,
the operator may signal MissingBackpressureException
.flatMap
does not operate by default on a particular Scheduler
.mapper | a function that, when applied to an item emitted by the source Publisher, returns an Publisher |
---|---|
delayErrors | if true, exceptions from the current Flowable and all inner Publishers are delayed until all of them terminate if false, the first one signalling an exception will terminate the whole sequence immediately |
maxConcurrency | the maximum number of Publishers that may be subscribed to concurrently |
Returns a Flowable that emits items based on applying a function that you supply to each item emitted by the source Publisher, where that function returns a Publisher, and then merging those resulting Publishers and emitting the results of this merger, while limiting the maximum number of concurrent subscriptions to these Publishers.
maxConcurrency
outstanding request amount for items).
The inner Publisher
s are expected to honor backpressure; if violated,
the operator may signal MissingBackpressureException
.flatMap
does not operate by default on a particular Scheduler
.mapper | a function that, when applied to an item emitted by the source Publisher, returns an Publisher |
---|---|
maxConcurrency | the maximum number of Publishers that may be subscribed to concurrently |
Returns a Flowable that emits the results of a specified function to the pair of values emitted by the source Publisher and a specified collection Publisher.
maxConcurrency
outstanding request amount for items).
The inner Publisher
s are expected to honor backpressure; if violated,
the operator may signal MissingBackpressureException
.flatMap
does not operate by default on a particular Scheduler
.mapper | a function that returns a Publisher for each item emitted by the source Publisher |
---|---|
combiner | a function that combines one item emitted by each of the source and collection Publishers and returns an item to be emitted by the resulting Publisher |
Returns a Flowable that emits the results of a specified function to the pair of values emitted by the source Publisher and a specified collection Publisher, while limiting the maximum number of concurrent subscriptions to these Publishers.
maxConcurrency
outstanding request amount for items).
The inner Publisher
s are expected to honor backpressure; if violated,
the operator may signal MissingBackpressureException
.flatMap
does not operate by default on a particular Scheduler
.mapper | a function that returns a Publisher for each item emitted by the source Publisher |
---|---|
combiner | a function that combines one item emitted by each of the source and collection Publishers and returns an item to be emitted by the resulting Publisher |
delayErrors | if true, exceptions from the current Flowable and all inner Publishers are delayed until all of them terminate if false, the first one signalling an exception will terminate the whole sequence immediately |
maxConcurrency | the maximum number of Publishers that may be subscribed to concurrently |
bufferSize | the number of elements to prefetch from the inner Publishers. |
Returns a Flowable that emits items based on applying a function that you supply to each item emitted by the source Publisher, where that function returns a Publisher, and then merging those resulting Publishers and emitting the results of this merger.
bufferSize()
outstanding request amount for items).
The inner Publisher
s are expected to honor backpressure; if violated,
the operator may signal MissingBackpressureException
.flatMap
does not operate by default on a particular Scheduler
.mapper | a function that, when applied to an item emitted by the source Publisher, returns an Publisher |
---|---|
delayErrors | if true, exceptions from the current Flowable and all inner Publishers are delayed until all of them terminate if false, the first one signalling an exception will terminate the whole sequence immediately |
Returns a Flowable that emits the results of a specified function to the pair of values emitted by the source Publisher and a specified collection Publisher.
bufferSize()
outstanding request amount for items).
The inner Publisher
s are expected to honor backpressure; if violated,
the operator may signal MissingBackpressureException
.flatMap
does not operate by default on a particular Scheduler
.mapper | a function that returns a Publisher for each item emitted by the source Publisher |
---|---|
combiner | a function that combines one item emitted by each of the source and collection Publishers and returns an item to be emitted by the resulting Publisher |
delayErrors | if true, exceptions from the current Flowable and all inner Publishers are delayed until all of them terminate if false, the first one signalling an exception will terminate the whole sequence immediately |
Returns a Flowable that applies a function to each item emitted or notification raised by the source Publisher and then flattens the Publishers returned from these functions and emits the resulting items.
bufferSize()
outstanding request amount for items).
The inner Publisher
s are expected to honor backpressure; if violated,
the operator may signal MissingBackpressureException
.flatMap
does not operate by default on a particular Scheduler
.onNextMapper | a function that returns a Publisher to merge for each item emitted by the source Publisher |
---|---|
onErrorMapper | a function that returns a Publisher to merge for an onError notification from the source Publisher |
onCompleteSupplier | a function that returns a Publisher to merge for an onComplete notification from the source Publisher |
Returns a Flowable that emits items based on applying a function that you supply to each item emitted by the source Publisher, where that function returns a Publisher, and then merging those resulting Publishers and emitting the results of this merger.
bufferSize()
outstanding request amount for items).
The inner Publisher
s are expected to honor backpressure; if violated,
the operator may signal MissingBackpressureException
.flatMap
does not operate by default on a particular Scheduler
.mapper | a function that, when applied to an item emitted by the source Publisher, returns an Publisher |
---|
Returns a Flowable that emits items based on applying a function that you supply to each item emitted by the source Publisher, where that function returns a Publisher, and then merging those resulting Publishers and emitting the results of this merger, while limiting the maximum number of concurrent subscriptions to these Publishers.
maxConcurrency
outstanding request amount for items).
The inner Publisher
s are expected to honor backpressure; if violated,
the operator may signal MissingBackpressureException
.flatMap
does not operate by default on a particular Scheduler
.mapper | a function that, when applied to an item emitted by the source Publisher, returns an Publisher |
---|---|
delayErrors | if true, exceptions from the current Flowable and all inner Publishers are delayed until all of them terminate if false, the first one signalling an exception will terminate the whole sequence immediately |
maxConcurrency | the maximum number of Publishers that may be subscribed to concurrently |
bufferSize | the number of elements to prefetch from each inner Publisher |
Maps each element of the upstream Flowable into CompletableSources, subscribes to them and waits until the upstream and all CompletableSources complete.
flatMapCompletable
does not operate by default on a particular Scheduler
.mapper | the function that received each source value and transforms them into CompletableSources. |
---|
Maps each element of the upstream Flowable into CompletableSources, subscribes to them and waits until the upstream and all CompletableSources complete, optionally delaying all errors.
maxConcurrency == Integer.MAX_VALUE
the operator consumes the upstream in an unbounded manner.
Otherwise the operator expects the upstream to honor backpressure. If the upstream doesn't support backpressure
the operator behaves as if maxConcurrency == Integer.MAX_VALUE
was used.flatMapCompletable
does not operate by default on a particular Scheduler
.mapper | the function that received each source value and transforms them into CompletableSources. |
---|---|
delayErrors | if true errors from the upstream and inner CompletableSources are delayed until each of them terminates. |
maxConcurrency | the maximum number of active subscriptions to the CompletableSources. |
Returns a Flowable that merges each item emitted by the source Publisher with the values in an Iterable corresponding to that item that is generated by a selector.
Publisher
s is
expected to honor backpressure as well. If the source Publisher
violates the rule, the operator will
signal a MissingBackpressureException
.flatMapIterable
does not operate by default on a particular Scheduler
.mapper | a function that returns an Iterable sequence of values for when given an item emitted by the source Publisher |
---|---|
bufferSize | the number of elements to prefetch from the current Flowable |
collectionSelector
Returns a Flowable that emits the results of applying a function to the pair of values from the source Publisher and an Iterable corresponding to that item that is generated by a selector.
Publisher
s is
consumed in an unbounded manner (i.e., no backpressure is applied to it).flatMapIterable
does not operate by default on a particular Scheduler
.mapper | a function that returns an Iterable sequence of values for each item emitted by the source Publisher |
---|---|
resultSelector | a function that returns an item based on the item emitted by the source Publisher and the
Iterable returned for that item by the collectionSelector |
resultSelector
for each item in the source
PublisherReturns a Flowable that merges each item emitted by the source Publisher with the values in an Iterable corresponding to that item that is generated by a selector.
Publisher
s is
expected to honor backpressure as well. If the source Publisher
violates the rule, the operator will
signal a MissingBackpressureException
.flatMapIterable
does not operate by default on a particular Scheduler
.mapper | a function that returns an Iterable sequence of values for when given an item emitted by the source Publisher |
---|
collectionSelector
Returns a Flowable that merges each item emitted by the source Publisher 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 Publishers.
Publisher
s is
expected to honor backpressure as well. If the source Publisher
violates the rule, the operator will
signal a MissingBackpressureException
.flatMapIterable
does not operate by default on a particular Scheduler
.mapper | a function that returns an Iterable sequence of values for when given an item emitted by the source Publisher |
---|---|
resultSelector | a function that returns an item based on the item emitted by the source Publisher and the
Iterable returned for that item by the collectionSelector |
prefetch | the number of elements to prefetch from the current Flowable |
collectionSelector
Maps each element of the upstream Flowable into MaybeSources, subscribes to them and waits until the upstream and all MaybeSources complete, optionally delaying all errors.
maxConcurrency == Integer.MAX_VALUE
the operator consumes the upstream in an unbounded manner.
Otherwise the operator expects the upstream to honor backpressure. If the upstream doesn't support backpressure
the operator behaves as if maxConcurrency == Integer.MAX_VALUE
was used.flatMapMaybe
does not operate by default on a particular Scheduler
.mapper | the function that received each source value and transforms them into MaybeSources. |
---|---|
delayErrors | if true errors from the upstream and inner MaybeSources are delayed until each of them terminates. |
maxConcurrency | the maximum number of active subscriptions to the MaybeSources. |
Maps each element of the upstream Flowable into MaybeSources, subscribes to them and waits until the upstream and all MaybeSources complete.
flatMapMaybe
does not operate by default on a particular Scheduler
.mapper | the function that received each source value and transforms them into MaybeSources. |
---|
Maps each element of the upstream Flowable into SingleSources, subscribes to them and waits until the upstream and all SingleSources complete, optionally delaying all errors.
maxConcurrency == Integer.MAX_VALUE
the operator consumes the upstream in an unbounded manner.
Otherwise the operator expects the upstream to honor backpressure. If the upstream doesn't support backpressure
the operator behaves as if maxConcurrency == Integer.MAX_VALUE
was used.flatMapSingle
does not operate by default on a particular Scheduler
.mapper | the function that received each source value and transforms them into SingleSources. |
---|---|
delayErrors | if true errors from the upstream and inner SingleSources are delayed until each of them terminates. |
maxConcurrency | the maximum number of active subscriptions to the SingleSources. |
Maps each element of the upstream Flowable into SingleSources, subscribes to them and waits until the upstream and all SingleSources complete.
flatMapSingle
does not operate by default on a particular Scheduler
.mapper | the function that received each source value and transforms them into SingleSources. |
---|
Subscribes to the Publisher and receives notifications for each element.
Alias to subscribe(Consumer)
Publisher
in an unbounded manner (i.e., no
backpressure is applied to it).forEach
does not operate by default on a particular Scheduler
.onNext | Consumer to execute for each item. |
---|
NullPointerException | if onNext is null |
---|
Subscribes to the Publisher and receives notifications for each element and the terminal events until the onNext Predicate returns false.
Publisher
in an unbounded manner (i.e., no
backpressure is applied to it).forEachWhile
does not operate by default on a particular Scheduler
.onNext | Predicate to execute for each item. |
---|---|
onError | Consumer to execute when an error is emitted. |
onComplete | Action to execute when completion is signalled. |
Disposable
that allows cancelling an asynchronous sequenceNullPointerException | if onNext is null, or
if onError is null, or
if onComplete is null |
---|
Subscribes to the Publisher and receives notifications for each element and error events until the onNext Predicate returns false.
Publisher
in an unbounded manner (i.e., no
backpressure is applied to it).forEachWhile
does not operate by default on a particular Scheduler
.onNext | Predicate to execute for each item. |
---|---|
onError | Consumer to execute when an error is emitted. |
Disposable
that allows cancelling an asynchronous sequenceNullPointerException | if onNext is null, or
if onError is null |
---|
Subscribes to the Publisher and receives notifications for each element until the onNext Predicate returns false.
If the Flowable emits an error, it is wrapped into an
OnErrorNotImplementedException
and routed to the RxJavaPlugins.onError handler.
Publisher
in an unbounded manner (i.e., no
backpressure is applied to it).forEachWhile
does not operate by default on a particular Scheduler
.onNext | Predicate to execute for each item. |
---|
Disposable
that allows cancelling an asynchronous sequenceNullPointerException | if onNext is null |
---|
Converts an Array into a Publisher that emits the items in the Array.
array
on demand (i.e., when requested).fromArray
does not operate by default on a particular Scheduler
.items | the array of elements |
---|
Returns a Flowable that, when a Subscriber subscribes to it, invokes a function you specify and then emits the value returned from that function.
This allows you to defer the execution of the function you specify until a Subscriber subscribes to the Publisher. That is to say, it makes the function "lazy."
fromCallable
does not operate by default on a particular Scheduler
.supplier | a function, the execution of which should be deferred; fromCallable will invoke this
function only when a Subscriber subscribes to the Publisher that fromCallable returns |
---|
Converts a Future
, operating on a specified Scheduler
, into a Publisher.
You can convert any object that supports the Future
interface into a Publisher that emits the
return value of the get()
method of that object, by passing the object into the from
method.
Unlike 1.x, cancelling the Flowable won't cancel the future. If necessary, one can use composition to achieve the
cancellation effect: futurePublisher.doOnCancel(() -> future.cancel(true));
.
Scheduler
this operator will usefuture | the source Future |
---|---|
scheduler | the Scheduler to wait for the Future on. Use a Scheduler such as
io() that can block and wait on the Future |
Future
Converts a Future
into a Publisher, with a timeout on the Future.
You can convert any object that supports the Future
interface into a Publisher that emits the
return value of the get()
method of that object, by passing the object into the from
method.
Unlike 1.x, cancelling the Flowable won't cancel the future. If necessary, one can use composition to achieve the
cancellation effect: futurePublisher.doOnCancel(() -> future.cancel(true));
.
Important note: This Publisher is blocking; you cannot cancel it.
fromFuture
does not operate by default on a particular Scheduler
.future | the source Future |
---|---|
timeout | the maximum time to wait before calling get |
unit | the TimeUnit of the timeout argument |
scheduler | the Scheduler to wait for the Future on. Use a Scheduler such as
io() that can block and wait on the Future |
Future
Converts a Future
into a Publisher, with a timeout on the Future.
You can convert any object that supports the Future
interface into a Publisher that emits the
return value of the get()
method of that object, by passing the object into the fromFuture
method.
Unlike 1.x, cancelling the Flowable won't cancel the future. If necessary, one can use composition to achieve the
cancellation effect: futurePublisher.doOnCancel(() -> future.cancel(true));
.
Important note: This Publisher is blocking on the thread it gets subscribed on; you cannot cancel it.
fromFuture
does not operate by default on a particular Scheduler
.future | the source Future |
---|---|
timeout | the maximum time to wait before calling get |
unit | the TimeUnit of the timeout argument |
Future
Converts a Future
into a Publisher.
You can convert any object that supports the Future
interface into a Publisher that emits the
return value of the get()
method of that object, by passing the object into the from
method.
Important note: This Publisher is blocking on the thread it gets subscribed on; you cannot cancel it.
Unlike 1.x, cancelling the Flowable won't cancel the future. If necessary, one can use composition to achieve the
cancellation effect: futurePublisher.doOnCancel(() -> future.cancel(true));
.
fromFuture
does not operate by default on a particular Scheduler
.future | the source Future |
---|
Future
Converts an Iterable
sequence into a Publisher that emits the items in the sequence.
iterable
on demand (i.e., when requested).fromIterable
does not operate by default on a particular Scheduler
.source | the source Iterable sequence |
---|
Iterable
sequenceConverts an arbitrary Reactive-Streams Publisher into a Flowable if not already a Flowable.
fromPublisher
does not operate by default on a particular Scheduler
.source | the Publisher to convert |
---|
NullPointerException | if publisher is null |
---|
Returns a cold, synchronous, stateful and backpressure-aware generator of values.
generate
does not operate by default on a particular Scheduler
.initialState | the Callable to generate the initial state for each Subscriber |
---|---|
generator | the Function called with the current state whenever a particular downstream Subscriber has
requested a value. The callback then should call onNext , onError or
onComplete to signal a value or a terminal event and should return a (new) state for
the next invocation. Signalling multiple onNext
in a call will make the operator signal IllegalStateException . |
disposeState | the Consumer that is called with the current state when the generator terminates the sequence or it gets cancelled |
Returns a cold, synchronous, stateful and backpressure-aware generator of values.
generate
does not operate by default on a particular Scheduler
.initialState | the Callable to generate the initial state for each Subscriber |
---|---|
generator | the Function called with the current state whenever a particular downstream Subscriber has
requested a value. The callback then should call onNext , onError or
onComplete to signal a value or a terminal event and should return a (new) state for
the next invocation. Signalling multiple onNext
in a call will make the operator signal IllegalStateException . |
Returns a cold, synchronous, stateful and backpressure-aware generator of values.
generate
does not operate by default on a particular Scheduler
.initialState | the Callable to generate the initial state for each Subscriber |
---|---|
generator | the Consumer called with the current state whenever a particular downstream Subscriber has
requested a value. The callback then should call onNext , onError or
onComplete to signal a value or a terminal event. Signalling multiple onNext
in a call will make the operator signal IllegalStateException . |
Returns a cold, synchronous, stateful and backpressure-aware generator of values.
generate
does not operate by default on a particular Scheduler
.initialState | the Callable to generate the initial state for each Subscriber |
---|---|
generator | the Consumer called with the current state whenever a particular downstream Subscriber has
requested a value. The callback then should call onNext , onError or
onComplete to signal a value or a terminal event. Signalling multiple onNext
in a call will make the operator signal IllegalStateException . |
disposeState | the Consumer that is called with the current state when the generator terminates the sequence or it gets cancelled |
Returns a cold, synchronous, stateless and backpressure-aware generator of values.
generate
does not operate by default on a particular Scheduler
.generator | the Consumer called whenever a particular downstream Subscriber has
requested a value. The callback then should call onNext , onError or
onComplete to signal a value or a terminal event. Signalling multiple onNext
in a call will make the operator signal IllegalStateException . |
---|
Groups the items emitted by a Publisher
according to a specified criterion, and emits these
grouped items as GroupedFlowable
s. The emitted GroupedPublisher
allows only a single
Subscriber during its lifetime and if this Subscriber
cancels before the
source terminates, the next emission by the source having the same key will trigger a new
GroupedPublisher
emission.
Note: A GroupedFlowable
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 those
GroupedPublisher
s that do not concern you. Instead, you can signal to them that they may
discard their buffers by applying an operator like ignoreElements()
to them.
Publisher
s honor backpressure and the source Publisher
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 inner Publisher
s use
unbounded internal buffers and if the source Publisher
doesn't honor backpressure, that may
lead to OutOfMemoryError
.groupBy
does not operate by default on a particular Scheduler
.keySelector | a function that extracts the key for each item |
---|---|
delayError | if true, the exception from the current Flowable is delayed in each group until that specific group emitted the normal values; if false, the exception bypasses values in the groups and is reported immediately. |
Publisher
that emits GroupedFlowable
s, each of which corresponds to a
unique key value and each of which emits those items from the source Publisher that share that
key valueGroups the items emitted by a Publisher
according to a specified criterion, and emits these
grouped items as GroupedFlowable
s. The emitted GroupedPublisher
allows only a single
Subscriber during its lifetime and if this Subscriber
cancels before the
source terminates, the next emission by the source having the same key will trigger a new
GroupedPublisher
emission.
Note: A GroupedFlowable
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 those
GroupedPublisher
s that do not concern you. Instead, you can signal to them that they may
discard their buffers by applying an operator like ignoreElements()
to them.
Publisher
s honor backpressure and the source Publisher
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 inner Publisher
s use
unbounded internal buffers and if the source Publisher
doesn't honor backpressure, that may
lead to OutOfMemoryError
.groupBy
does not operate by default on a particular Scheduler
.keySelector | a function that extracts the key for each item |
---|
Publisher
that emits GroupedFlowable
s, each of which corresponds to a
unique key value and each of which emits those items from the source Publisher that share that
key valueGroups the items emitted by a Publisher
according to a specified criterion, and emits these
grouped items as GroupedFlowable
s. The emitted GroupedPublisher
allows only a single
Subscriber during its lifetime and if this Subscriber
cancels before the
source terminates, the next emission by the source having the same key will trigger a new
GroupedPublisher
emission.
Note: A GroupedFlowable
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 those
GroupedPublisher
s that do not concern you. Instead, you can signal to them that they may
discard their buffers by applying an operator like ignoreElements()
to them.
Publisher
s honor backpressure and the source Publisher
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 inner Publisher
s use
unbounded internal buffers and if the source Publisher
doesn't honor backpressure, that may
lead to OutOfMemoryError
.groupBy
does not operate by default on a particular Scheduler
.keySelector | a function that extracts the key for each item |
---|---|
valueSelector | a function that extracts the return element for each item |
Publisher
that emits GroupedFlowable
s, each of which corresponds to a
unique key value and each of which emits those items from the source Publisher that share that
key valueGroups the items emitted by a Publisher
according to a specified criterion, and emits these
grouped items as GroupedFlowable
s. The emitted GroupedPublisher
allows only a single
Subscriber during its lifetime and if this Subscriber
cancels before the
source terminates, the next emission by the source having the same key will trigger a new
GroupedPublisher
emission.
Note: A GroupedFlowable
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 those
GroupedPublisher
s that do not concern you. Instead, you can signal to them that they may
discard their buffers by applying an operator like ignoreElements()
to them.
Publisher
s honor backpressure and the source Publisher
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 inner Publisher
s use
unbounded internal buffers and if the source Publisher
doesn't honor backpressure, that may
lead to OutOfMemoryError
.groupBy
does not operate by default on a particular Scheduler
.keySelector | a function that extracts the key for each item |
---|---|
valueSelector | a function that extracts the return element for each item |
delayError | if true, the exception from the current Flowable is delayed in each group until that specific group emitted the normal values; if false, the exception bypasses values in the groups and is reported immediately. |
Publisher
that emits GroupedFlowable
s, each of which corresponds to a
unique key value and each of which emits those items from the source Publisher that share that
key valueGroups the items emitted by a Publisher
according to a specified criterion, and emits these
grouped items as GroupedFlowable
s. The emitted GroupedPublisher
allows only a single
Subscriber during its lifetime and if this Subscriber
cancels before the
source terminates, the next emission by the source having the same key will trigger a new
GroupedPublisher
emission.
Note: A GroupedFlowable
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 those
GroupedPublisher
s that do not concern you. Instead, you can signal to them that they may
discard their buffers by applying an operator like ignoreElements()
to them.
Publisher
s honor backpressure and the source Publisher
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 inner Publisher
s use
unbounded internal buffers and if the source Publisher
doesn't honor backpressure, that may
lead to OutOfMemoryError
.groupBy
does not operate by default on a particular Scheduler
.keySelector | a function that extracts the key for each item |
---|---|
valueSelector | a function that extracts the return element for each item |
delayError | if true, the exception from the current Flowable is delayed in each group until that specific group emitted the normal values; if false, the exception bypasses values in the groups and is reported immediately. |
bufferSize | the hint for how many GroupedFlowable s and element in each GroupedFlowable should be buffered |
Publisher
that emits GroupedFlowable
s, each of which corresponds to a
unique key value and each of which emits those items from the source Publisher that share that
key valueReturns a Flowable that correlates two Publishers when they overlap in time and groups the results.
There are no guarantees in what order the items get combined when multiple items from one or both source Publishers overlap.
Publisher
s in
an unbounded mode (i.e., not applying any backpressure to them).groupJoin
does not operate by default on a particular Scheduler
.other | the other Publisher to correlate items from the source Publisher with |
---|---|
leftEnd | a function that returns a Publisher whose emissions indicate the duration of the values of the source Publisher |
rightEnd | a function that returns a Publisher whose emissions indicate the duration of the values of
the right Publisher |
resultSelector | a function that takes an item emitted by each Publisher and returns the value to be emitted by the resulting Publisher |
Hides the identity of this Flowable and its Subscription.
Allows hiding extra features such as Processor's Subscriber methods or preventing certain identity-based optimizations (fusion).
hide
does not operate by default on a particular Scheduler
.Ignores all items emitted by the source Publisher and only calls onComplete
or onError
.
Publisher
in an unbounded manner (i.e., no backpressure is applied to it).ignoreElements
does not operate by default on a particular Scheduler
.onComplete
or onError
, based on which one is
called by the source PublisherReturns a Flowable that emits a sequential number every specified interval of time, on a specified Scheduler.
MissingBackpressureException
at some point in the chain.
Consumers should consider applying one of the onBackpressureXXX
operators as well.Scheduler
this operator will useperiod | the period size in time units (see below) |
---|---|
unit | time units to use for the interval size |
scheduler | the Scheduler to use for scheduling the items |
Returns a Flowable that emits a sequential number every specified interval of time.
MissingBackpressureException
if the downstream
is not ready to receive the next value.interval
operates by default on the computation
Scheduler
.period | the period size in time units (see below) |
---|---|
unit | time units to use for the interval size |
Returns a Flowable that emits a 0L
after the initialDelay
and ever increasing numbers
after each period
of time thereafter, on a specified Scheduler
.
MissingBackpressureException
at some point in the chain.
Consumers should consider applying one of the onBackpressureXXX
operators as well.Scheduler
this operator will useinitialDelay | the initial delay time to wait before emitting the first value of 0L |
---|---|
period | the period of time between emissions of the subsequent numbers |
unit | the time unit for both initialDelay and period |
scheduler | the Scheduler on which the waiting happens and items are emitted |
initialDelay
and ever increasing numbers after
each period
of time thereafter, while running on the given SchedulerReturns a Flowable that emits a 0L
after the initialDelay
and ever increasing numbers
after each period
of time thereafter.
MissingBackpressureException
at some point in the chain.
Consumers should consider applying one of the onBackpressureXXX
operators as well.interval
operates by default on the computation
Scheduler
.initialDelay | the initial delay time to wait before emitting the first value of 0L |
---|---|
period | the period of time between emissions of the subsequent numbers |
unit | the time unit for both initialDelay and period |
initialDelay
and ever increasing numbers after
each period
of time thereafterSignals a range of long values, the first after some initial delay and the rest periodically after.
The sequence completes immediately after the last value (start + count - 1) has been reached.
MissingBackpressureException
if the downstream can't keep up.Scheduler
.start | that start value of the range |
---|---|
count | the number of values to emit in total, if zero, the operator emits an onComplete after the initial delay. |
initialDelay | the initial delay before signalling the first value (the start) |
period | the period between subsequent values |
unit | the unit of measure of the initialDelay and period amounts |
scheduler | the target scheduler where the values and terminal signals will be emitted |
Signals a range of long values, the first after some initial delay and the rest periodically after.
The sequence completes immediately after the last value (start + count - 1) has been reached.
MissingBackpressureException
if the downstream can't keep up.intervalRange
by default operates on the computation
Scheduler
.start | that start value of the range |
---|---|
count | the number of values to emit in total, if zero, the operator emits an onComplete after the initial delay. |
initialDelay | the initial delay before signalling the first value (the start) |
period | the period between subsequent values |
unit | the unit of measure of the initialDelay and period amounts |
Returns a Single that emits true
if the source Publisher is empty, otherwise false
.
In Rx.Net this is negated as the any
Subscriber but we renamed this in RxJava to better match Java
naming idioms.
Publisher
in an
unbounded manner (i.e., without applying backpressure).isEmpty
does not operate by default on a particular Scheduler
.Correlates the items emitted by two Publishers based on overlapping durations.
There are no guarantees in what order the items get combined when multiple items from one or both source Publishers overlap.
Publisher
s in
an unbounded mode (i.e., not applying any backpressure to them).join
does not operate by default on a particular Scheduler
.other | the second Publisher to join items from |
---|---|
leftEnd | a function to select a duration for each item emitted by the source Publisher, used to determine overlap |
rightEnd | a function to select a duration for each item emitted by the right Publisher, used to
determine overlap |
resultSelector | a function that computes an item to be emitted by the resulting Publisher for any two overlapping items emitted by the two Publishers |
Converts six items into a Publisher that emits those items.
just
does not operate by default on a particular Scheduler
.item1 | first item |
---|---|
item2 | second item |
item3 | third item |
item4 | fourth item |
item5 | fifth item |
item6 | sixth item |
Converts two items into a Publisher that emits those items.
just
does not operate by default on a particular Scheduler
.item1 | first item |
---|---|
item2 | second item |
Converts four items into a Publisher that emits those items.
just
does not operate by default on a particular Scheduler
.item1 | first item |
---|---|
item2 | second item |
item3 | third item |
item4 | fourth item |
Returns a Flowable that emits a single item and then completes.
To convert any object into a Publisher that emits that object, pass that object into the just
method.
This is similar to the fromArray(java.lang.Object[])
method, except that from
will convert
an Iterable
object into a Publisher that emits each of the items in the Iterable, one at a
time, while the just
method converts an Iterable into a Publisher that emits the entire
Iterable as a single item.
just
does not operate by default on a particular Scheduler
.item | the item to emit |
---|
value
as a single item and then completesConverts five items into a Publisher that emits those items.
just
does not operate by default on a particular Scheduler
.item1 | first item |
---|---|
item2 | second item |
item3 | third item |
item4 | fourth item |
item5 | fifth item |
Converts seven items into a Publisher that emits those items.
just
does not operate by default on a particular Scheduler
.item1 | first item |
---|---|
item2 | second item |
item3 | third item |
item4 | fourth item |
item5 | fifth item |
item6 | sixth item |
item7 | seventh item |
Converts eight items into a Publisher that emits those items.
just
does not operate by default on a particular Scheduler
.item1 | first item |
---|---|
item2 | second item |
item3 | third item |
item4 | fourth item |
item5 | fifth item |
item6 | sixth item |
item7 | seventh item |
item8 | eighth item |
Converts nine items into a Publisher that emits those items.
just
does not operate by default on a particular Scheduler
.item1 | first item |
---|---|
item2 | second item |
item3 | third item |
item4 | fourth item |
item5 | fifth item |
item6 | sixth item |
item7 | seventh item |
item8 | eighth item |
item9 | ninth item |
Converts ten items into a Publisher that emits those items.
just
does not operate by default on a particular Scheduler
.item1 | first item |
---|---|
item2 | second item |
item3 | third item |
item4 | fourth item |
item5 | fifth item |
item6 | sixth item |
item7 | seventh item |
item8 | eighth item |
item9 | ninth item |
item10 | tenth item |
Converts three items into a Publisher that emits those items.
just
does not operate by default on a particular Scheduler
.item1 | first item |
---|---|
item2 | second item |
item3 | third item |
Returns a Single that emits only the last item emitted by this Flowable, or a default item if this Flowable completes without emitting any items.
Publisher
in an
unbounded manner (i.e., without applying backpressure).last
does not operate by default on a particular Scheduler
.defaultItem | the default item to emit if the source Publisher is empty |
---|
Returns a Maybe that emits the last item emitted by this Flowable or completes if this Flowable is empty.
Publisher
in an
unbounded manner (i.e., without applying backpressure).lastElement
does not operate by default on a particular Scheduler
.Returns a Single that emits only the last item emitted by this Flowable or signals
a NoSuchElementException
if this Flowable is empty.
Publisher
in an
unbounded manner (i.e., without applying backpressure).lastOrError
does not operate by default on a particular Scheduler
.This method requires advanced knowledge about building operators; please consider other standard composition methods first; Lifts a function to the current Publisher and returns a new Publisher that when subscribed to will pass the values of the current Publisher through the Operator function.
In other words, this allows chaining Subscribers together on a Publisher for acting on the values within the Publisher.
Publisher.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
Publisher, use lift
. If your operator is designed to transform the source Publisher as a whole
(for instance, by applying a particular set of existing RxJava operators to it) use compose(FlowableTransformer super T, ? extends R>)
.
Operator
instance provided is responsible to be backpressure-aware or
document the fact that the consumer of the returned Publisher
has to apply one of
the onBackpressureXXX
operators.lift
does not operate by default on a particular Scheduler
.lifter | the Operator that implements the Publisher-operating function to be applied to the source Publisher |
---|
Returns a Flowable that applies a specified function to each item emitted by the source Publisher and emits the results of these function applications.
Publisher
's backpressure
behavior.map
does not operate by default on a particular Scheduler
.mapper | a function to apply to each item emitted by the Publisher |
---|
Returns a Flowable that represents all of the emissions and notifications from the source
Publisher into emissions marked with their original types within Notification
objects.
Publisher
.
If this expectation is violated, the operator may throw an IllegalStateException
.materialize
does not operate by default on a particular Scheduler
.Flattens a Publisher that emits Publishers into a single Publisher that emits the items emitted by those Publishers, without any transformation.
You can combine the items emitted by multiple Publishers so that they appear as a single Publisher, by
using the merge
method.
Publisher
is consumed
in unbounded mode (i.e., no backpressure is applied to it). The inner Publisher
s are expected to honor
backpressure; if violated, the operator may signal MissingBackpressureException
.merge
does not operate by default on a particular Scheduler
.sources | a Publisher that emits Publishers |
---|
source
PublisherFlattens three Publishers into a single Publisher, without any transformation.
You can combine items emitted by multiple Publishers so that they appear as a single Publisher, by
using the merge
method.
Publisher
s are expected to honor
backpressure; if violated, the operator may signal MissingBackpressureException
.merge
does not operate by default on a particular Scheduler
.source1 | a Publisher to be merged |
---|---|
source2 | a Publisher to be merged |
source3 | a Publisher to be merged |
Flattens a Publisher that emits Publishers into a single Publisher that emits the items emitted by those Publishers, without any transformation, while limiting the maximum number of concurrent subscriptions to these Publishers.
You can combine the items emitted by multiple Publishers so that they appear as a single Publisher, by
using the merge
method.
Publisher
s are expected to honor
backpressure; if violated, the operator may signal MissingBackpressureException
.merge
does not operate by default on a particular Scheduler
.sources | a Publisher that emits Publishers |
---|---|
maxConcurrency | the maximum number of Publishers that may be subscribed to concurrently |
source
PublisherIllegalArgumentException | if maxConcurrency is less than or equal to 0 |
---|
Flattens an Iterable of Publishers into one Publisher, without any transformation, while limiting the number of concurrent subscriptions to these Publishers.
You can combine the items emitted by multiple Publishers so that they appear as a single Publisher, by
using the merge
method.
Publisher
s are expected to honor
backpressure; if violated, the operator may signal MissingBackpressureException
.merge
does not operate by default on a particular Scheduler
.sources | the Iterable of Publishers |
---|---|
maxConcurrency | the maximum number of Publishers that may be subscribed to concurrently |
IllegalArgumentException | if maxConcurrency is less than or equal to 0 |
---|
Flattens two Publishers into a single Publisher, without any transformation.
You can combine items emitted by multiple Publishers so that they appear as a single Publisher, by
using the merge
method.
Publisher
s are expected to honor
backpressure; if violated, the operator may signal MissingBackpressureException
.merge
does not operate by default on a particular Scheduler
.source1 | a Publisher to be merged |
---|---|
source2 | a Publisher to be merged |
Flattens an Iterable of Publishers into one Publisher, without any transformation.
You can combine the items emitted by multiple Publishers so that they appear as a single Publisher, by
using the merge
method.
Publisher
s are expected to honor
backpressure; if violated, the operator may signal MissingBackpressureException
.merge
does not operate by default on a particular Scheduler
.sources | the Iterable of Publishers |
---|
Flattens four Publishers into a single Publisher, without any transformation.
You can combine items emitted by multiple Publishers so that they appear as a single Publisher, by
using the merge
method.
Publisher
s are expected to honor
backpressure; if violated, the operator may signal MissingBackpressureException
.merge
does not operate by default on a particular Scheduler
.source1 | a Publisher to be merged |
---|---|
source2 | a Publisher to be merged |
source3 | a Publisher to be merged |
source4 | a Publisher to be merged |
Flattens an Iterable of Publishers into one Publisher, without any transformation, while limiting the number of concurrent subscriptions to these Publishers.
You can combine the items emitted by multiple Publishers so that they appear as a single Publisher, by
using the merge
method.
Publisher
s are expected to honor
backpressure; if violated, the operator may signal MissingBackpressureException
.merge
does not operate by default on a particular Scheduler
.sources | the Iterable of Publishers |
---|---|
maxConcurrency | the maximum number of Publishers that may be subscribed to concurrently |
bufferSize | the number of items to prefetch from each inner Publisher |
IllegalArgumentException | if maxConcurrency is less than or equal to 0 |
---|
Flattens an Array of Publishers into one Publisher, without any transformation.
You can combine items emitted by multiple Publishers so that they appear as a single Publisher, by
using the merge
method.
Publisher
s are expected to honor
backpressure; if violated, the operator may signal MissingBackpressureException
.mergeArray
does not operate by default on a particular Scheduler
.sources | the array of Publishers |
---|
Flattens an Iterable of Publishers into one Publisher, without any transformation, while limiting the number of concurrent subscriptions to these Publishers.
You can combine the items emitted by multiple Publishers so that they appear as a single Publisher, by
using the merge
method.
Publisher
s are expected to honor
backpressure; if violated, the operator may signal MissingBackpressureException
.mergeArray
does not operate by default on a particular Scheduler
.maxConcurrency | the maximum number of Publishers that may be subscribed to concurrently |
---|---|
bufferSize | the number of items to prefetch from each inner Publisher |
sources | the array of Publishers |
IllegalArgumentException | if maxConcurrency is less than or equal to 0 |
---|
Flattens an array of Publishers into one Publisher, in a way that allows a Subscriber to receive all successfully emitted items from each of the source Publishers without being interrupted by an error notification from one of them, while limiting the number of concurrent subscriptions to these Publishers.
This behaves like merge(Publisher)
except that if any of the merged Publishers notify of an
error via onError
, mergeDelayError
will refrain from propagating that
error notification until all of the merged Publishers have finished emitting items.
Even if multiple merged Publishers send onError
notifications, mergeDelayError
will only
invoke the onError
method of its Subscribers once.
Publisher
s are expected to honor
backpressure; if violated, the operator may signal MissingBackpressureException
.mergeArrayDelayError
does not operate by default on a particular Scheduler
.maxConcurrency | the maximum number of Publishers that may be subscribed to concurrently |
---|---|
bufferSize | the number of items to prefetch from each inner Publisher |
sources | the array of Publishers |
Flattens an array of Publishers into one Flowable, in a way that allows a Subscriber to receive all successfully emitted items from each of the source Publishers without being interrupted by an error notification from one of them.
This behaves like merge(Publisher)
except that if any of the merged Publishers notify of an
error via onError
, mergeDelayError
will refrain from propagating that
error notification until all of the merged Publishers have finished emitting items.
Even if multiple merged Publishers send onError
notifications, mergeDelayError
will only
invoke the onError
method of its Subscribers once.
Publisher
s are expected to honor
backpressure; if violated, the operator may signal MissingBackpressureException
.mergeArrayDelayError
does not operate by default on a particular Scheduler
.sources | the Iterable of Publishers |
---|
Flattens three Publishers into one Publisher, in a way that allows a Subscriber to receive all successfully emitted items from all of the source Publishers without being interrupted by an error notification from one of them.
This behaves like merge(Publisher, Publisher, Publisher)
except that if any of the merged
Publishers notify of an error via onError
, mergeDelayError
will refrain
from propagating that error notification until all of the merged Publishers have finished emitting
items.
Even if multiple merged Publishers send onError
notifications, mergeDelayError
will only
invoke the onError
method of its Subscribers once.
Publisher
s are expected to honor
backpressure; if violated, the operator may signal MissingBackpressureException
.mergeDelayError
does not operate by default on a particular Scheduler
.source1 | a Publisher to be merged |
---|---|
source2 | a Publisher to be merged |
source3 | a Publisher to be merged |
Flattens a Publisher that emits Publishers into one Publisher, in a way that allows a Subscriber to receive all successfully emitted items from all of the source Publishers without being interrupted by an error notification from one of them, while limiting the number of concurrent subscriptions to these Publishers.
This behaves like merge(Publisher)
except that if any of the merged Publishers notify of an
error via onError
, mergeDelayError
will refrain from propagating that
error notification until all of the merged Publishers have finished emitting items.
Even if multiple merged Publishers send onError
notifications, mergeDelayError
will only
invoke the onError
method of its Subscribers once.
Publisher
s are expected to honor
backpressure; if violated, the operator may signal MissingBackpressureException
.mergeDelayError
does not operate by default on a particular Scheduler
.sources | a Publisher that emits Publishers |
---|---|
maxConcurrency | the maximum number of Publishers that may be subscribed to concurrently |
source
PublisherFlattens a Publisher that emits Publishers into one Publisher, in a way that allows a Subscriber to receive all successfully emitted items from all of the source Publishers without being interrupted by an error notification from one of them.
This behaves like merge(Publisher)
except that if any of the merged Publishers notify of an
error via onError
, mergeDelayError
will refrain from propagating that
error notification until all of the merged Publishers have finished emitting items.
Even if multiple merged Publishers send onError
notifications, mergeDelayError
will only
invoke the onError
method of its Subscribers once.
Publisher
is consumed
in unbounded mode (i.e., no backpressure is applied to it). The inner Publisher
s are expected to honor
backpressure; if violated, the operator may signal MissingBackpressureException
.mergeDelayError
does not operate by default on a particular Scheduler
.sources | a Publisher that emits Publishers |
---|
source
PublisherFlattens an Iterable of Publishers into one Publisher, in a way that allows a Subscriber to receive all successfully emitted items from each of the source Publishers without being interrupted by an error notification from one of them, while limiting the number of concurrent subscriptions to these Publishers.
This behaves like merge(Publisher)
except that if any of the merged Publishers notify of an
error via onError
, mergeDelayError
will refrain from propagating that
error notification until all of the merged Publishers have finished emitting items.
Even if multiple merged Publishers send onError
notifications, mergeDelayError
will only
invoke the onError
method of its Subscribers once.
Publisher
s are expected to honor
backpressure; if violated, the operator may signal MissingBackpressureException
.mergeDelayError
does not operate by default on a particular Scheduler
.sources | the Iterable of Publishers |
---|---|
maxConcurrency | the maximum number of Publishers that may be subscribed to concurrently |
bufferSize | the number of items to prefetch from each inner Publisher |
Flattens two Publishers into one Publisher, in a way that allows a Subscriber to receive all successfully emitted items from each of the source Publishers without being interrupted by an error notification from one of them.
This behaves like merge(Publisher, Publisher)
except that if any of the merged Publishers
notify of an error via onError
, mergeDelayError
will refrain from
propagating that error notification until all of the merged Publishers have finished emitting items.
Even if both merged Publishers send onError
notifications, mergeDelayError
will only
invoke the onError
method of its Subscribers once.
Publisher
s are expected to honor
backpressure; if violated, the operator may signal MissingBackpressureException
.mergeDelayError
does not operate by default on a particular Scheduler
.source1 | a Publisher to be merged |
---|---|
source2 | a Publisher to be merged |
Flattens an Iterable of Publishers into one Publisher, in a way that allows a Subscriber to receive all successfully emitted items from each of the source Publishers without being interrupted by an error notification from one of them, while limiting the number of concurrent subscriptions to these Publishers.
This behaves like merge(Publisher)
except that if any of the merged Publishers notify of an
error via onError
, mergeDelayError
will refrain from propagating that
error notification until all of the merged Publishers have finished emitting items.
Even if multiple merged Publishers send onError
notifications, mergeDelayError
will only
invoke the onError
method of its Subscribers once.
Publisher
s are expected to honor
backpressure; if violated, the operator may signal MissingBackpressureException
.mergeDelayError
does not operate by default on a particular Scheduler
.sources | the Iterable of Publishers |
---|---|
maxConcurrency | the maximum number of Publishers that may be subscribed to concurrently |
Flattens an Iterable of Publishers into one Publisher, in a way that allows a Subscriber to receive all successfully emitted items from each of the source Publishers without being interrupted by an error notification from one of them.
This behaves like merge(Publisher)
except that if any of the merged Publishers notify of an
error via onError
, mergeDelayError
will refrain from propagating that
error notification until all of the merged Publishers have finished emitting items.
Even if multiple merged Publishers send onError
notifications, mergeDelayError
will only
invoke the onError
method of its Subscribers once.
Publisher
s are expected to honor
backpressure; if violated, the operator may signal MissingBackpressureException
.mergeDelayError
does not operate by default on a particular Scheduler
.sources | the Iterable of Publishers |
---|
Flattens four Publishers into one Publisher, in a way that allows a Subscriber to receive all successfully emitted items from all of the source Publishers without being interrupted by an error notification from one of them.
This behaves like merge(Publisher, Publisher, Publisher, Publisher)
except that if any of
the merged Publishers notify of an error via onError
, mergeDelayError
will refrain from propagating that error notification until all of the merged Publishers have finished
emitting items.
Even if multiple merged Publishers send onError
notifications, mergeDelayError
will only
invoke the onError
method of its Subscribers once.
Publisher
s are expected to honor
backpressure; if violated, the operator may signal MissingBackpressureException
.mergeDelayError
does not operate by default on a particular Scheduler
.source1 | a Publisher to be merged |
---|---|
source2 | a Publisher to be merged |
source3 | a Publisher to be merged |
source4 | a Publisher to be merged |
Flattens this and another Publisher into a single Publisher, without any transformation.
You can combine items emitted by multiple Publishers so that they appear as a single Publisher, by
using the mergeWith
method.
Publisher
s are expected to honor
backpressure; if violated, the operator may signal MissingBackpressureException
.mergeWith
does not operate by default on a particular Scheduler
.other | a Publisher to be merged |
---|
Returns a Flowable that never sends any items or notifications to a Subscriber.
This Publisher is useful primarily for testing purposes.
never
does not operate by default on a particular Scheduler
.Modifies a Publisher to perform its emissions and notifications on a specified Scheduler
,
asynchronously with a bounded buffer and optionally delays onError notifications.
Publisher
. Violating this
expectation will lead to MissingBackpressureException
. This is the most common operator where the exception
pops up; look for sources up the chain that don't support backpressure,
such as interval
, timer
, {code PublishSubject} or BehaviorSubject
and apply any
of the onBackpressureXXX
operators before applying observeOn
itself.Scheduler
this operator will usescheduler | the Scheduler to notify Subscribers on |
---|---|
delayError | 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 upstream |
Scheduler
Modifies a Publisher to perform its emissions and notifications on a specified Scheduler
,
asynchronously with a bounded buffer of bufferSize()
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 the observeOn(Scheduler, boolean)
overload.
Publisher
. Violating this
expectation will lead to MissingBackpressureException
. This is the most common operator where the exception
pops up; look for sources up the chain that don't support backpressure,
such as interval
, timer
, {code PublishSubject} or BehaviorSubject
and apply any
of the onBackpressureXXX
operators before applying observeOn
itself.Scheduler
this operator will usescheduler | the Scheduler to notify Subscribers on |
---|
Scheduler
Modifies a Publisher to perform its emissions and notifications on a specified Scheduler
,
asynchronously with a bounded buffer of configurable size and optionally delays onError notifications.
Publisher
. Violating this
expectation will lead to MissingBackpressureException
. This is the most common operator where the exception
pops up; look for sources up the chain that don't support backpressure,
such as interval
, timer
, {code PublishSubject} or BehaviorSubject
and apply any
of the onBackpressureXXX
operators before applying observeOn
itself.Scheduler
this operator will usescheduler | the Scheduler to notify Subscribers on |
---|---|
delayError | 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 upstream |
bufferSize | the size of the buffer. |
Scheduler
Filters the items emitted by a Publisher, only emitting those of the specified type.
Publisher
's backpressure
behavior.ofType
does not operate by default on a particular Scheduler
.clazz | the class type to filter the items emitted by the source Publisher |
---|
clazz
Instructs a Publisher that is emitting items faster than its Subscriber can consume them to buffer up to
a given amount of items until they can be emitted. The resulting Publisher will onError
emitting
a BufferOverflowException
as soon as the buffer's capacity is exceeded, dropping all undelivered
items, and cancelling the source.
Publisher
in an unbounded
manner (i.e., not applying backpressure to it).onBackpressureBuffer
does not operate by default on a particular Scheduler
.capacity | number of slots available in the buffer. |
---|---|
delayError | if true, an exception from the current Flowable is delayed until all buffered elements have been consumed by the downstream; if false, an exception is immediately signalled to the downstream, skipping any buffered element |
unbounded | if true, the capacity value is interpreted as the internal "island" size of the unbounded buffer |
Publisher
modified to buffer items up to the given capacity.Instructs a Publisher that is emitting items faster than its Subscriber can consume them to buffer up to
a given amount of items until they can be emitted. The resulting Publisher will onError
emitting
a BufferOverflowException
as soon as the buffer's capacity is exceeded, dropping all undelivered
items, and cancelling the source.
Publisher
in an unbounded
manner (i.e., not applying backpressure to it).onBackpressureBuffer
does not operate by default on a particular Scheduler
.capacity | number of slots available in the buffer. |
---|
Publisher
modified to buffer items up to the given capacity.Instructs a Publisher that is emitting items faster than its Subscriber can consume them to buffer up to
a given amount of items until they can be emitted. The resulting Publisher will behave as determined
by overflowStrategy
if the buffer capacity is exceeded.
BackpressureOverflow.Strategy.ON_OVERFLOW_ERROR
(default) will onError
dropping all undelivered items,
cancelling the source, and notifying the producer with onOverflow
. BackpressureOverflow.Strategy.ON_OVERFLOW_DROP_LATEST
will drop any new items emitted by the producer while
the buffer is full, without generating any onError
. Each drop will however invoke onOverflow
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 invoke
onOverflow
to signal the overflow to the producer.
Publisher
in an unbounded
manner (i.e., not applying backpressure to it).onBackpressureBuffer
does not operate by default on a particular Scheduler
.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 the Publisher react to buffer overflows. Null is not allowed. |
Flowable
modified to buffer items up to the given capacityInstructs a Publisher that is emitting items faster than its Subscriber can consume them to buffer these items indefinitely until they can be emitted.
Publisher
in an unbounded
manner (i.e., not applying backpressure to it).onBackpressureBuffer
does not operate by default on a particular Scheduler
.delayError | if true, an exception from the current Flowable is delayed until all buffered elements have been consumed by the downstream; if false, an exception is immediately signalled to the downstream, skipping any buffered element |
---|
Instructs a Publisher that is emitting items faster than its Subscriber can consume them to buffer up to
a given amount of items until they can be emitted. The resulting Publisher will onError
emitting
a BufferOverflowException
as soon as the buffer's capacity is exceeded, dropping all undelivered
items, cancelling the source, and notifying the producer with onOverflow
.
Publisher
in an unbounded
manner (i.e., not applying backpressure to it).onBackpressureBuffer
does not operate by default on a particular Scheduler
.capacity | number of slots available in the buffer. |
---|---|
delayError | if true, an exception from the current Flowable is delayed until all buffered elements have been consumed by the downstream; if false, an exception is immediately signalled to the downstream, skipping any buffered element |
unbounded | if true, the capacity value is interpreted as the internal "island" size of the unbounded buffer |
onOverflow | action to execute if an item needs to be buffered, but there are no available slots. Null is allowed. |
Publisher
modified to buffer items up to the given capacityInstructs a Publisher that is emitting items faster than its Subscriber can consume them to buffer up to
a given amount of items until they can be emitted. The resulting Publisher will onError
emitting
a BufferOverflowException
as soon as the buffer's capacity is exceeded, dropping all undelivered
items, cancelling the source, and notifying the producer with onOverflow
.
Publisher
in an unbounded
manner (i.e., not applying backpressure to it).onBackpressureBuffer
does not operate by default on a particular Scheduler
.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. |
Publisher
modified to buffer items up to the given capacityInstructs a Publisher that is emitting items faster than its Subscriber can consume them to buffer up to
a given amount of items until they can be emitted. The resulting Publisher will onError
emitting
a BufferOverflowException
as soon as the buffer's capacity is exceeded, dropping all undelivered
items, and cancelling the source.
Publisher
in an unbounded
manner (i.e., not applying backpressure to it).onBackpressureBuffer
does not operate by default on a particular Scheduler
.capacity | number of slots available in the buffer. |
---|---|
delayError | if true, an exception from the current Flowable is delayed until all buffered elements have been consumed by the downstream; if false, an exception is immediately signalled to the downstream, skipping any buffered element |
Publisher
modified to buffer items up to the given capacity.Instructs a Publisher that is emitting items faster than its Subscriber can consume them to buffer these items indefinitely until they can be emitted.
Publisher
in an unbounded
manner (i.e., not applying backpressure to it).onBackpressureBuffer
does not operate by default on a particular Scheduler
.Instructs a Publisher that is emitting items faster than its Subscriber can consume them to discard, rather than emit, those items that its Subscriber is not prepared to observe.
If the downstream request count hits 0 then the Publisher will refrain from calling onNext
until
the Subscriber invokes request(n)
again to increase the request count.
Publisher
in an unbounded
manner (i.e., not applying backpressure to it).onBackpressureDrop
does not operate by default on a particular Scheduler
.onNext
notifications on overflowInstructs a Publisher that is emitting items faster than its Subscriber can consume them to discard, rather than emit, those items that its Subscriber is not prepared to observe.
If the downstream request count hits 0 then the Publisher will refrain from calling onNext
until
the Subscriber invokes request(n)
again to increase the request count.
Publisher
in an unbounded
manner (i.e., not applying backpressure to it).onBackpressureDrop
does not operate by default on a particular Scheduler
.onDrop | the action to invoke for each item dropped. onDrop action should be fast and should never block. |
---|
onNext
notifications on overflowInstructs a Publisher that is emitting items faster than its Subscriber can consume them to hold onto the latest value and emit that on request.
Its behavior is logically equivalent to blockingLatest()
with the exception that
the downstream is not blocking while requesting more values.
Note that if the upstream Publisher 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.
Publisher
in an unbounded
manner (i.e., not applying backpressure to it).onBackpressureLatest
does not operate by default on a particular Scheduler
.Instructs a Publisher to pass control to another Publisher rather than invoking
onError
if it encounters an error.
By default, when a Publisher encounters an error that prevents it from emitting the expected item to
its Subscriber, the Publisher invokes its Subscriber's onError
method, and then quits
without invoking any more of its Subscriber's methods. The onErrorResumeNext
method changes this
behavior. If you pass another Publisher (resumeSequence
) to a Publisher's
onErrorResumeNext
method, if the original Publisher encounters an error, instead of invoking its
Subscriber's onError
method, it will instead relinquish control to resumeSequence
which
will invoke the Subscriber's onNext
method if it is able to do so. In such a case,
because no Publisher necessarily invokes onError
, the Subscriber 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.
Publisher
s
are expected to honor backpressure as well.
If any of them violate this expectation, the operator may throw an
IllegalStateException
when the source Publisher
completes or
MissingBackpressureException
is signalled somewhere downstream.onErrorResumeNext
does not operate by default on a particular Scheduler
.next | the next Publisher source that will take over if the source Publisher encounters an error |
---|
Instructs a Publisher to pass control to another Publisher rather than invoking
onError
if it encounters an error.
By default, when a Publisher encounters an error that prevents it from emitting the expected item to
its Subscriber, the Publisher invokes its Subscriber's onError
method, and then quits
without invoking any more of its Subscriber's methods. The onErrorResumeNext
method changes this
behavior. If you pass a function that returns a Publisher (resumeFunction
) to
onErrorResumeNext
, if the original Publisher encounters an error, instead of invoking its
Subscriber's onError
method, it will instead relinquish control to the Publisher returned from
resumeFunction
, which will invoke the Subscriber's onNext
method if it is
able to do so. In such a case, because no Publisher necessarily invokes onError
, the Subscriber
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.
Publisher
s
are expected to honor backpressure as well.
If any of them violate this expectation, the operator may throw an
IllegalStateException
when the source Publisher
completes or
a MissingBackpressureException
is signalled somewhere downstream.onErrorResumeNext
does not operate by default on a particular Scheduler
.resumeFunction | a function that returns a Publisher that will take over if the source Publisher encounters an error |
---|
Instructs a Publisher to emit an item (returned by a specified function) rather than invoking
onError
if it encounters an error.
By default, when a Publisher encounters an error that prevents it from emitting the expected item to
its Subscriber, the Publisher invokes its Subscriber's onError
method, and then quits
without invoking any more of its Subscriber's methods. The onErrorReturn
method changes this
behavior. If you pass a function (resumeFunction
) to a Publisher's onErrorReturn
method, if the original Publisher encounters an error, instead of invoking its Subscriber's
onError
method, it will instead emit the return value of resumeFunction
.
You can use this to prevent errors from propagating or to supply fallback data should errors be encountered.
Publisher
s is expected to honor
backpressure as well. If it this expectation is violated, the operator may throw
IllegalStateException
when the source Publisher
completes or
MissingBackpressureException
is signalled somewhere downstream.onErrorReturn
does not operate by default on a particular Scheduler
.valueSupplier | a function that returns a single value that will be emitted along with a regular onComplete in case the current Flowable signals an onError event |
---|
Instructs a Publisher to emit an item (returned by a specified function) rather than invoking
onError
if it encounters an error.
By default, when a Publisher encounters an error that prevents it from emitting the expected item to
its Subscriber, the Publisher invokes its Subscriber's onError
method, and then quits
without invoking any more of its Subscriber's methods. The onErrorReturn
method changes this
behavior. If you pass a function (resumeFunction
) to a Publisher's onErrorReturn
method, if the original Publisher encounters an error, instead of invoking its Subscriber's
onError
method, it will instead emit the return value of resumeFunction
.
You can use this to prevent errors from propagating or to supply fallback data should errors be encountered.
Publisher
s is expected to honor
backpressure as well. If it this expectation is violated, the operator may throw
IllegalStateException
when the source Publisher
completes or
MissingBackpressureException
is signalled somewhere downstream.onErrorReturnItem
does not operate by default on a particular Scheduler
.item | the value that is emitted along with a regular onComplete in case the current Flowable signals an exception |
---|
Instructs a Publisher to pass control to another Publisher rather than invoking
onError
if it encounters an Exception
.
This differs from onErrorResumeNext(Function super Throwable, ? extends Publisher extends T>>)
in that this one does not handle Throwable
or java.lang.Error but lets those continue through.
By default, when a Publisher encounters an exception that prevents it from emitting the expected item
to its Subscriber, the Publisher invokes its Subscriber's onError
method, and then quits
without invoking any more of its Subscriber's methods. The onExceptionResumeNext
method changes
this behavior. If you pass another Publisher (resumeSequence
) to a Publisher's
onExceptionResumeNext
method, if the original Publisher encounters an exception, instead of
invoking its Subscriber's onError
method, it will instead relinquish control to
resumeSequence
which will invoke the Subscriber's onNext
method if it is
able to do so. In such a case, because no Publisher necessarily invokes onError
, the Subscriber
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.
Publisher
s
are expected to honor backpressure as well.
If any of them violate this expectation, the operator may throw an
IllegalStateException
when the source Publisher
completes or
MissingBackpressureException
is signalled somewhere downstream.onExceptionResumeNext
does not operate by default on a particular Scheduler
.next | the next Publisher that will take over if the source Publisher encounters an exception |
---|
Nulls out references to the upstream producer and downstream Subscriber if the sequence is terminated or downstream cancels.
Publisher
's backpressure
behavior.onTerminateDetach
does not operate by default on a particular Scheduler
.Parallelizes the flow by creating multiple 'rails' (equal to the number of CPUs) and dispatches the upstream items to them in a round-robin fashion.
Note that the rails don't execute in parallel on their own and one needs to
apply runOn(Scheduler)
to specify the Scheduler where
each rail will execute.
To merge the parallel 'rails' back into a single sequence, use sequential()
.
parallel
does not operate by default on a particular Scheduler
.History: 2.0.5 - experimental
Parallelizes the flow by creating the specified number of 'rails' and dispatches the upstream items to them in a round-robin fashion and uses the defined per-'rail' prefetch amount.
Note that the rails don't execute in parallel on their own and one needs to
apply runOn(Scheduler)
to specify the Scheduler where
each rail will execute.
To merge the parallel 'rails' back into a single sequence, use sequential()
.
parallel
does not operate by default on a particular Scheduler
.History: 2.0.5 - experimental
parallelism | the number of 'rails' to use |
---|---|
prefetch | the number of items each 'rail' should prefetch |
Parallelizes the flow by creating the specified number of 'rails' and dispatches the upstream items to them in a round-robin fashion.
Note that the rails don't execute in parallel on their own and one needs to
apply runOn(Scheduler)
to specify the Scheduler where
each rail will execute.
To merge the parallel 'rails' back into a single sequence, use sequential()
.
parallel
does not operate by default on a particular Scheduler
.History: 2.0.5 - experimental
parallelism | the number of 'rails' to use |
---|
Returns a ConnectableFlowable
, which is a variety of Publisher that waits until its
connect
method is called before it begins emitting items to those
Subscribers that have subscribed to it.
ConnectableFlowable
honors backpressure for each of its Subscriber
s
and expects the source Publisher
to honor backpressure as well. If this expectation is violated,
the operator will signal a MissingBackpressureException
to its Subscriber
s and disconnect.publish
does not operate by default on a particular Scheduler
.ConnectableFlowable
that upon connection causes the source Publisher to emit items
to its SubscribersReturns a Flowable that emits the results of invoking a specified selector on items emitted by a
ConnectableFlowable
that shares a single subscription to the underlying sequence.
Publisher
to honor backpressure and if this expectation is
violated, the operator will signal a MissingBackpressureException
through the Publisher
provided to the function. Since the Publisher
returned by the selector
may be
independent from the provided Publisher
to the function, the output's backpressure behavior
is determined by this returned Publisher
.publish
does not operate by default on a particular Scheduler
.selector | 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. |
---|---|
prefetch | the number of elements to prefetch from the current Flowable |
ConnectableFlowable
that shares a single subscription to the underlying sequenceReturns a ConnectableFlowable
, which is a variety of Publisher that waits until its
connect
method is called before it begins emitting items to those
Subscribers that have subscribed to it.
ConnectableFlowable
honors backpressure for each of its Subscriber
s
and expects the source Publisher
to honor backpressure as well. If this expectation is violated,
the operator will signal a MissingBackpressureException
to its Subscriber
s and disconnect.publish
does not operate by default on a particular Scheduler
.bufferSize | the number of elements to prefetch from the current Flowable |
---|
ConnectableFlowable
that upon connection causes the source Publisher to emit items
to its SubscribersReturns a Flowable that emits the results of invoking a specified selector on items emitted by a
ConnectableFlowable
that shares a single subscription to the underlying sequence.
Publisher
to honor backpressure and if this expectation is
violated, the operator will signal a MissingBackpressureException
through the Publisher
provided to the function. Since the Publisher
returned by the selector
may be
independent from the provided Publisher
to the function, the output's backpressure behavior
is determined by this returned Publisher
.publish
does not operate by default on a particular Scheduler
.selector | 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. |
---|
ConnectableFlowable
that shares a single subscription to the underlying sequenceReturns a Flowable that emits a sequence of Integers within a specified range.
range
does not operate by default on a particular Scheduler
.start | the value of the first Integer in the sequence |
---|---|
count | the number of sequential Integers to generate |
IllegalArgumentException | if count is less than zero, or if start + count − 1 exceeds
Integer.MAX_VALUE |
---|
Returns a Flowable that emits a sequence of Longs within a specified range.
rangeLong
does not operate by default on a particular Scheduler
.start | the value of the first Long in the sequence |
---|---|
count | the number of sequential Longs to generate |
IllegalArgumentException | if count is less than zero, or if start + count − 1 exceeds
Long.MAX_VALUE |
---|
Requests n
initially from the upstream and then 75% of n
subsequently
after 75% of n
values have been emitted to the downstream.
This operator allows preventing the downstream to trigger unbounded mode via request(Long.MAX_VALUE)
or compensate for the per-item overhead of small and frequent requests.
rebatchRequests
does not operate by default on a particular Scheduler
.n | the initial request amount, further request will happen after 75% of this value |
---|
Returns a Maybe that applies a specified accumulator function to the first item emitted by a source Publisher, then feeds the result of that function along with the second item emitted by the source Publisher into the same function, and so on until all items have been emitted by the source Publisher, and emits the final result from the final call to your function as its sole item.
If the source is empty, a NoSuchElementException
is signalled.
This technique, which is called "reduce" here, is sometimes called "aggregate," "fold," "accumulate,"
"compress," or "inject" in other programming contexts. Groovy, for instance, has an inject
method
that does a similar operation on lists.
reduce
does not operate by default on a particular Scheduler
.reducer | an accumulator function to be invoked on each item emitted by the source Publisher, whose result will be used in the next accumulator call |
---|
Returns a Single that applies a specified accumulator function to the first item emitted by a source Publisher and a specified seed value, then feeds the result of that function along with the second item emitted by a Publisher into the same function, and so on until all items have been emitted by the source Publisher, emitting the final result from the final call to your function as its sole item.
This technique, which is called "reduce" here, is sometimes called "aggregate," "fold," "accumulate,"
"compress," or "inject" in other programming contexts. Groovy, for instance, has an inject
method
that does a similar operation on lists.
Note that the seed
is shared among all subscribers to the resulting Publisher
and may cause problems if it is mutable. To make sure each subscriber gets its own value, defer
the application of this operator via defer(Callable)
:
Publisher<T> source = ...
Single.defer(() -> source.reduce(new ArrayList<>(), (list, item) -> list.add(item)));
// alternatively, by using compose to stay fluent
source.compose(o ->
Flowable.defer(() -> o.reduce(new ArrayList<>(), (list, item) -> list.add(item)).toFlowable())
).firstOrError();
// or, by using reduceWith instead of reduce
source.reduceWith(() -> new ArrayList<>(), (list, item) -> list.add(item)));
reduce
does not operate by default on a particular Scheduler
.seed | the initial (seed) accumulator value |
---|---|
reducer | an accumulator function to be invoked on each item emitted by the source Publisher, the result of which will be used in the next accumulator call |
Returns a Single that applies a specified accumulator function to the first item emitted by a source Publisher and a seed value derived from calling a specified seedSupplier, then feeds the result of that function along with the second item emitted by a Publisher into the same function, and so on until all items have been emitted by the source Publisher, emitting the final result from the final call to your function as its sole item.
This technique, which is called "reduce" here, is sometimes called "aggregate," "fold," "accumulate,"
"compress," or "inject" in other programming contexts. Groovy, for instance, has an inject
method
that does a similar operation on lists.
reduceWith
does not operate by default on a particular Scheduler
.seedSupplier | the Callable that provides the initial (seed) accumulator value for each individual Subscriber |
---|---|
reducer | an accumulator function to be invoked on each item emitted by the source Publisher, the result of which will be used in the next accumulator call |
Returns a Flowable that repeats the sequence of items emitted by the source Publisher indefinitely.
Publisher
to honor backpressure as well.
If this expectation is violated, the operator may throw an IllegalStateException
.repeat
does not operate by default on a particular Scheduler
.Returns a Flowable that repeats the sequence of items emitted by the source Publisher at most
count
times.
Publisher
to honor backpressure as well.
If this expectation is violated, the operator may throw an IllegalStateException
.repeat
does not operate by default on a particular Scheduler
.times | the number of times the source Publisher items are repeated, a count of 0 will yield an empty sequence |
---|
count
timesIllegalArgumentException | if count is less than zero |
---|
Returns a Flowable that repeats the sequence of items emitted by the source Publisher until the provided stop function returns true.
Publisher
to honor backpressure as well.
If this expectation is violated, the operator may throw an IllegalStateException
.repeatUntil
does not operate by default on a particular Scheduler
.stop | a boolean supplier that is called when the current Flowable completes and unless it returns false, the current Flowable is resubscribed |
---|
NullPointerException | if stop is null |
---|
Returns a Flowable that emits the same values as the source Publisher with the exception of an
onComplete
. An onComplete
notification from the source will result in the emission of
a void
item to the Publisher provided as an argument to the notificationHandler
function. If that Publisher calls onComplete
or onError
then repeatWhen
will
call onComplete
or onError
on the child subscription. Otherwise, this Publisher will
resubscribe to the source Publisher.
Publisher
to honor backpressure as well.
If this expectation is violated, the operator may throw an IllegalStateException
.repeatWhen
does not operate by default on a particular Scheduler
.handler | receives a Publisher of notifications with which a user can complete or error, aborting the repeat. |
---|
Returns a Flowable that emits items that are the results of invoking a specified selector on items
emitted by a ConnectableFlowable
that shares a single subscription to the source Publisher.
Scheduler
this operator will useselector | a selector function, which can use the multicasted sequence as many times as needed, without causing multiple subscriptions to the Publisher |
---|---|
scheduler | the Scheduler where the replay is observed |
ConnectableFlowable
that shares a single subscription to the source Publisher,
replaying all itemsReturns a Flowable that emits items that are the results of invoking a specified selector on items
emitted by a ConnectableFlowable
that shares a single subscription to the source Publisher,
replaying bufferSize
notifications.
replay
does not operate by default on a particular Scheduler
.selector | the selector function, which can use the multicasted sequence as many times as needed, without causing multiple subscriptions to the Publisher |
---|---|
bufferSize | the buffer size that limits the number of items the connectable Publisher can replay |
ConnectableFlowable
that shares a single subscription to the source Publisher
replaying no more than bufferSize
itemsReturns a Flowable that emits items that are the results of invoking a specified selector on items
emitted by a ConnectableFlowable
that shares a single subscription to the source Publisher,
replaying a maximum of bufferSize
items.
Scheduler
this operator will useselector | a selector function, which can use the multicasted sequence as many times as needed, without causing multiple subscriptions to the Publisher |
---|---|
bufferSize | the buffer size that limits the number of items the connectable Publisher can replay |
scheduler | the Scheduler on which the replay is observed |
ConnectableFlowable
that shares a single subscription to the source Publisher,
replaying no more than bufferSize
notificationsReturns a ConnectableFlowable
that shares a single subscription to the source Publisher and
replays at most bufferSize
items that were emitted during a specified time window. A Connectable
Publisher resembles an ordinary Publisher, except that it does not begin emitting items when it is
subscribed to, but only when its connect
method is called.
replay
operates by default on the computation
Scheduler
.bufferSize | the buffer size that limits the number of items that can be replayed |
---|---|
time | the duration of the window in which the replayed items must have been emitted |
unit | the time unit of time |
ConnectableFlowable
that shares a single subscription to the source Publisher and
replays at most bufferSize
items that were emitted during the window defined by
time
Returns a ConnectableFlowable
that shares a single subscription to the source Publisher and
that replays a maximum of bufferSize
items that are emitted within a specified time window. A
Connectable Publisher resembles an ordinary Publisher, except that it does not begin emitting items
when it is subscribed to, but only when its connect
method is called.
Scheduler
this operator will usebufferSize | the buffer size that limits the number of items that can be replayed |
---|---|
time | the duration of the window in which the replayed items must have been emitted |
unit | the time unit of time |
scheduler | the scheduler that is used as a time source for the window |
ConnectableFlowable
that shares a single subscription to the source Publisher and
replays at most bufferSize
items that were emitted during the window defined by
time
IllegalArgumentException | if bufferSize is less than zero |
---|
Returns a ConnectableFlowable
that shares a single subscription to the source Publisher that
replays at most bufferSize
items emitted by that Publisher. A Connectable Publisher resembles
an ordinary Publisher, except that it does not begin emitting items when it is subscribed to, but only
when its connect
method is called.
replay
does not operate by default on a particular Scheduler
.bufferSize | the buffer size that limits the number of items that can be replayed |
---|
ConnectableFlowable
that shares a single subscription to the source Publisher and
replays at most bufferSize
items emitted by that PublisherReturns a ConnectableFlowable
that shares a single subscription to the underlying Publisher
that will replay all of its items and notifications to any future Subscriber. A Connectable
Publisher resembles an ordinary Publisher, except that it does not begin emitting items when it is
subscribed to, but only when its connect
method is called.
replay
does not operate by default on a particular Scheduler
.ConnectableFlowable
that upon connection causes the source Publisher to emit its
items to its SubscribersReturns a Flowable that emits items that are the results of invoking a specified selector on the items
emitted by a ConnectableFlowable
that shares a single subscription to the source Publisher.
replay
does not operate by default on a particular Scheduler
.selector | the selector function, which can use the multicasted sequence as many times as needed, without causing multiple subscriptions to the Publisher |
---|
ConnectableFlowable
that shares a single subscription to the source PublisherReturns a Flowable that emits items that are the results of invoking a specified selector on items
emitted by a ConnectableFlowable
that shares a single subscription to the source Publisher,
replaying no more than bufferSize
items that were emitted within a specified time window.
replay
operates by default on the computation
Scheduler
.selector | a selector function, which can use the multicasted sequence as many times as needed, without causing multiple subscriptions to the Publisher |
---|---|
bufferSize | the buffer size that limits the number of items the connectable Publisher can replay |
time | the duration of the window in which the replayed items must have been emitted |
unit | the time unit of time |
ConnectableFlowable
that shares a single subscription to the source Publisher, and
replays no more than bufferSize
items that were emitted within the window defined by
time
Returns a Flowable that emits items that are the results of invoking a specified selector on items
emitted by a ConnectableFlowable
that shares a single subscription to the source Publisher,
replaying all items that were emitted within a specified time window.
Scheduler
this operator will useselector | a selector function, which can use the multicasted sequence as many times as needed, without causing multiple subscriptions to the Publisher |
---|---|
time | the duration of the window in which the replayed items must have been emitted |
unit | the time unit of time |
scheduler | the scheduler that is the time source for the window |
ConnectableFlowable
that shares a single subscription to the source Publisher,
replaying all items that were emitted within the window defined by time
Returns a ConnectableFlowable
that shares a single subscription to the source Publisher and
replays all items emitted by that Publisher within a specified time window. A Connectable Publisher
resembles an ordinary Publisher, except that it does not begin emitting items when it is subscribed to,
but only when its connect
method is called.
replay
operates by default on the computation
Scheduler
.time | the duration of the window in which the replayed items must have been emitted |
---|---|
unit | the time unit of time |
ConnectableFlowable
that shares a single subscription to the source Publisher and
replays the items that were emitted during the window defined by time
Returns a ConnectableFlowable
that shares a single subscription to the source Publisher that
will replay all of its items and notifications to any future Subscriber on the given
Scheduler
. A Connectable Publisher resembles an ordinary Publisher, except that it does not
begin emitting items when it is subscribed to, but only when its connect
method is called.
Scheduler
this operator will usescheduler | the Scheduler on which the Subscribers will observe the emitted items |
---|
ConnectableFlowable
that shares a single subscription to the source Publisher that
will replay all of its items and notifications to any future Subscriber on the given
Scheduler
Returns a ConnectableFlowable
that shares a single subscription to the source Publisher and
replays at most bufferSize
items emitted by that Publisher. A Connectable Publisher resembles
an ordinary Publisher, except that it does not begin emitting items when it is subscribed to, but only
when its connect
method is called.
Scheduler
this operator will usebufferSize | the buffer size that limits the number of items that can be replayed |
---|---|
scheduler | the scheduler on which the Subscribers will observe the emitted items |
ConnectableFlowable
that shares a single subscription to the source Publisher and
replays at most bufferSize
items that were emitted by the PublisherReturns a ConnectableFlowable
that shares a single subscription to the source Publisher and
replays all items emitted by that Publisher within a specified time window. A Connectable Publisher
resembles an ordinary Publisher, except that it does not begin emitting items when it is subscribed to,
but only when its connect
method is called.
Scheduler
this operator will usetime | the duration of the window in which the replayed items must have been emitted |
---|---|
unit | the time unit of time |
scheduler | the Scheduler that is the time source for the window |
ConnectableFlowable
that shares a single subscription to the source Publisher and
replays the items that were emitted during the window defined by time
Returns a Flowable that emits items that are the results of invoking a specified selector on items
emitted by a ConnectableFlowable
that shares a single subscription to the source Publisher,
replaying all items that were emitted within a specified time window.
replay
operates by default on the computation
Scheduler
.selector | a selector function, which can use the multicasted sequence as many times as needed, without causing multiple subscriptions to the Publisher |
---|---|
time | the duration of the window in which the replayed items must have been emitted |
unit | the time unit of time |
ConnectableFlowable
that shares a single subscription to the source Publisher,
replaying all items that were emitted within the window defined by time
Returns a Flowable that emits items that are the results of invoking a specified selector on items
emitted by a ConnectableFlowable
that shares a single subscription to the source Publisher,
replaying no more than bufferSize
items that were emitted within a specified time window.
Scheduler
this operator will useselector | a selector function, which can use the multicasted sequence as many times as needed, without causing multiple subscriptions to the Publisher |
---|---|
bufferSize | the buffer size that limits the number of items the connectable Publisher can replay |
time | the duration of the window in which the replayed items must have been emitted |
unit | the time unit of time |
scheduler | the Scheduler that is the time source for the window |
ConnectableFlowable
that shares a single subscription to the source Publisher, and
replays no more than bufferSize
items that were emitted within the window defined by
time
IllegalArgumentException | if bufferSize is less than zero |
---|
Returns a Flowable that mirrors the source Publisher, resubscribing to it if it calls onError
(infinite retry count).
If the source Publisher calls onError(Throwable)
, this method will resubscribe to the source
Publisher rather than propagating the onError
call.
Any and all items emitted by the source Publisher will be emitted by the resulting Publisher, even
those emitted during failed subscriptions. For example, if a Publisher 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, onComplete]
.
Publisher
to honor backpressure as well.
If this expectation is violated, the operator may throw an IllegalStateException
.retry
does not operate by default on a particular Scheduler
.Returns a Flowable that mirrors the source Publisher, resubscribing to it if it calls onError
up to a specified number of retries.
If the source Publisher calls onError(Throwable)
, this method will resubscribe to the source
Publisher for a maximum of count
resubscriptions rather than propagating the
onError
call.
Any and all items emitted by the source Publisher will be emitted by the resulting Publisher, even
those emitted during failed subscriptions. For example, if a Publisher 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, onComplete]
.
Publisher
to honor backpressure as well.
If this expectation is violated, the operator may throw an IllegalStateException
.retry
does not operate by default on a particular Scheduler
.count | number of retry attempts before failing |
---|
Retries at most times or until the predicate returns false, whichever happens first.
Publisher
to honor backpressure as well.
If this expectation is violated, the operator may throw an IllegalStateException
.retry
does not operate by default on a particular Scheduler
.times | the number of times to repeat |
---|---|
predicate | the predicate called with the failure Throwable and should return true to trigger a retry. |
Returns a Flowable that mirrors the source Publisher, resubscribing to it if it calls onError
and the predicate returns true for that specific exception and retry count.
Publisher
to honor backpressure as well.
If this expectation is violated, the operator may throw an IllegalStateException
.retry
does not operate by default on a particular Scheduler
.predicate | the predicate that determines if a resubscription may happen in case of a specific exception and retry count |
---|
Retries the current Flowable if the predicate returns true.
Publisher
to honor backpressure as well.
If this expectation is violated, the operator may throw an IllegalStateException
.retry
does not operate by default on a particular Scheduler
.predicate | the predicate that receives the failure Throwable and should return true to trigger a retry. |
---|
Retries until the given stop function returns true.
Publisher
to honor backpressure as well.
If this expectation is violated, the operator may throw an IllegalStateException
.retryUntil
does not operate by default on a particular Scheduler
.stop | the function that should return true to stop retrying |
---|
Returns a Flowable that emits the same values as the source Publisher with the exception of an
onError
. An onError
notification from the source will result in the emission of a
Throwable
item to the Publisher provided as an argument to the notificationHandler
function. If that Publisher calls onComplete
or onError
then retry
will call
onComplete
or onError
on the child subscription. Otherwise, this Publisher will
resubscribe to the source Publisher.
Example:
This retries 3 times, each time incrementing the number of seconds it waits.
Publisher.create((Subscriber<? super String> s) -> {
System.out.println("subscribing");
s.onError(new RuntimeException("always fails"));
}).retryWhen(attempts -> {
return attempts.zipWith(Flowable.range(1, 3), (n, i) -> i).flatMap(i -> {
System.out.println("delay retry by " + i + " second(s)");
return Publisher.timer(i, TimeUnit.SECONDS);
});
}).blockingForEach(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
Publisher
to honor backpressure as well.
If this expectation is violated, the operator may throw an IllegalStateException
.retryWhen
does not operate by default on a particular Scheduler
.handler | receives a Publisher of notifications with which a user can complete or error, aborting the retry |
---|
Subscribes to the current Flowable and wraps the given Subscriber into a SafeSubscriber (if not already a SafeSubscriber) that deals with exceptions thrown by a misbehaving Subscriber (that doesn't follow the Reactive-Streams specification).
safeSubscribe
does not operate by default on a particular Scheduler
.s | the incoming Subscriber instance |
---|
NullPointerException | if s is null |
---|
Returns a Flowable that emits the most recently emitted item (if any) emitted by the source Publisher within periodic time intervals, where the intervals are defined on a particular Scheduler.
Scheduler
this operator will useperiod | the sampling rate |
---|---|
unit | the TimeUnit in which period is defined |
scheduler | the Scheduler to use when sampling |
Returns a Flowable that emits the most recently emitted item (if any) emitted by the source Publisher within periodic time intervals.
sample
operates by default on the computation
Scheduler
.period | the sampling rate |
---|---|
unit | the TimeUnit in which period is defined |
Returns a Flowable that, when the specified sampler
Publisher emits an item or completes,
emits the most recently emitted item (if any) emitted by the source Publisher since the previous
emission from the sampler
Publisher.
sampler
Publisher to control data flow.sample
does not operate by default on a particular Scheduler
.sampler | the Publisher to use for sampling the source Publisher |
---|
sampler
Publisher emits an item or completesReturns a Flowable that emits the most recently emitted item (if any) emitted by the source Publisher within periodic time intervals and optionally emit the very last upstream item when the upstream completes.
sample
operates by default on the computation
Scheduler
.History: 2.0.5 - experimental
period | the sampling rate |
---|---|
unit | the TimeUnit in which period is defined |
emitLast | if true and the upstream completes while there is still an unsampled item available, that item is emitted to downstream before completion if false, an unsampled last item is ignored. |
Returns a Flowable that emits the most recently emitted item (if any) emitted by the source Publisher within periodic time intervals, where the intervals are defined on a particular Scheduler and optionally emit the very last upstream item when the upstream completes.
Scheduler
this operator will useHistory: 2.0.5 - experimental
period | the sampling rate |
---|---|
unit | the TimeUnit in which period is defined |
scheduler | the Scheduler to use when sampling |
emitLast | if true and the upstream completes while there is still an unsampled item available, that item is emitted to downstream before completion if false, an unsampled last item is ignored. |
Returns a Flowable that, when the specified sampler
Publisher emits an item or completes,
emits the most recently emitted item (if any) emitted by the source Publisher since the previous
emission from the sampler
Publisher
and optionally emit the very last upstream item when the upstream or other Publisher complete.
sampler
Publisher to control data flow.sample
does not operate by default on a particular Scheduler
.History: 2.0.5 - experimental
sampler | the Publisher to use for sampling the source Publisher |
---|---|
emitLast | if true and the upstream completes while there is still an unsampled item available, that item is emitted to downstream before completion if false, an unsampled last item is ignored. |
sampler
Publisher emits an item or completesReturns a Flowable that applies a specified accumulator function to the first item emitted by a source Publisher and a seed value, then feeds the result of that function along with the second item emitted by the source Publisher into the same function, and so on until all items have been emitted by the source Publisher, emitting the result of each of these iterations.
This sort of function is sometimes called an accumulator.
Note that the Publisher that results from this method will emit initialValue
as its first
emitted item.
Note that the initialValue
is shared among all subscribers to the resulting Publisher
and may cause problems if it is mutable. To make sure each subscriber gets its own value, defer
the application of this operator via defer(Callable)
:
Publisher<T> source = ...
Flowable.defer(() -> source.scan(new ArrayList<>(), (list, item) -> list.add(item)));
// alternatively, by using compose to stay fluent
source.compose(o ->
Flowable.defer(() -> o.scan(new ArrayList<>(), (list, item) -> list.add(item)))
);
Publisher
to honor backpressure as well.
Violating this expectation, a MissingBackpressureException
may get signalled somewhere downstream.scan
does not operate by default on a particular Scheduler
.initialValue | the initial (seed) accumulator item |
---|---|
accumulator | an accumulator function to be invoked on each item emitted by the source Publisher, whose
result will be emitted to Subscribers via onNext and used in the
next accumulator call |
initialValue
followed by the results of each call to the
accumulator functionReturns a Flowable that applies a specified accumulator function to the first item emitted by a source Publisher, then feeds the result of that function along with the second item emitted by the source Publisher into the same function, and so on until all items have been emitted by the source Publisher, emitting the result of each of these iterations.
This sort of function is sometimes called an accumulator.
Publisher
to honor backpressure as well.
Violating this expectation, a MissingBackpressureException
may get signalled somewhere downstream.scan
does not operate by default on a particular Scheduler
.accumulator | an accumulator function to be invoked on each item emitted by the source Publisher, whose
result will be emitted to Subscribers via onNext and used in the
next accumulator call |
---|
Returns a Flowable that applies a specified accumulator function to the first item emitted by a source Publisher and a seed value, then feeds the result of that function along with the second item emitted by the source Publisher into the same function, and so on until all items have been emitted by the source Publisher, emitting the result of each of these iterations.
This sort of function is sometimes called an accumulator.
Note that the Publisher that results from this method will emit the value returned by
the seedSupplier
as its first item.
Publisher
to honor backpressure as well.
Violating this expectation, a MissingBackpressureException
may get signalled somewhere downstream.scanWith
does not operate by default on a particular Scheduler
.seedSupplier | a Callable that returns the initial (seed) accumulator item for each individual Subscriber |
---|---|
accumulator | an accumulator function to be invoked on each item emitted by the source Publisher, whose
result will be emitted to Subscribers via onNext and used in the
next accumulator call |
initialValue
followed by the results of each call to the
accumulator functionReturns a Single that emits a Boolean value that indicates whether two Publisher sequences are the same by comparing the items emitted by each Publisher pairwise based on the results of a specified equality function.
Publisher
s are expected to honor
backpressure; if violated, the operator signals a MissingBackpressureException
.sequenceEqual
does not operate by default on a particular Scheduler
.source1 | the first Publisher to compare |
---|---|
source2 | the second Publisher to compare |
isEqual | a function used to compare items emitted by each Publisher |
bufferSize | the number of items to prefetch from the first and second source Publisher |
Returns a Single that emits a Boolean value that indicates whether two Publisher sequences are the same by comparing the items emitted by each Publisher pairwise.
sequenceEqual
does not operate by default on a particular Scheduler
.source1 | the first Publisher to compare |
---|---|
source2 | the second Publisher to compare |
bufferSize | the number of items to prefetch from the first and second source Publisher |
Returns a Single that emits a Boolean value that indicates whether two Publisher sequences are the same by comparing the items emitted by each Publisher pairwise.
sequenceEqual
does not operate by default on a particular Scheduler
.source1 | the first Publisher to compare |
---|---|
source2 | the second Publisher to compare |
Returns a Single that emits a Boolean value that indicates whether two Publisher sequences are the same by comparing the items emitted by each Publisher pairwise based on the results of a specified equality function.
Publisher
s are expected to honor
backpressure; if violated, the operator signals a MissingBackpressureException
.sequenceEqual
does not operate by default on a particular Scheduler
.source1 | the first Publisher to compare |
---|---|
source2 | the second Publisher to compare |
isEqual | a function used to compare items emitted by each Publisher |
Forces a Publisher's emissions and notifications to be serialized and for it to obey the Publisher contract in other ways.
It is possible for a Publisher to invoke its Subscribers' methods asynchronously, perhaps from
different threads. This could make such a Publisher poorly-behaved, in that it might try to invoke
onComplete
or onError
before one of its onNext
invocations, or it might call
onNext
from two different threads concurrently. You can force such a Publisher to be
well-behaved and sequential by applying the serialize
method to it.
Publisher
's backpressure
behavior.serialize
does not operate by default on a particular Scheduler
.Returns a new Publisher that multicasts (shares) the original Publisher. As long as there is at least one Subscriber this Publisher will be subscribed and emitting data. When all subscribers have cancelled it will cancel the source Publisher.
This is an alias for publish()
.refCount()
.
Publisher
to honor backpressure as well.
If this expectation is violated, the operator will signal a MissingBackpressureException
to
its Subscriber
s.share
does not operate by default on a particular Scheduler
.Publisher
that upon connection causes the source Publisher
to emit items
to its SubscribersReturns a Single that emits the single item emitted by the source Publisher, if that Publisher
emits only a single item, or a default item if the source Publisher emits no items. If the source
Publisher emits more than one item, an IllegalArgumentException
is signalled instead.
Publisher
in an
unbounded manner (i.e., without applying backpressure).single
does not operate by default on a particular Scheduler
.defaultItem | a default value to emit if the source Publisher emits no item |
---|
Returns a Maybe that completes if this Flowable is empty, signals one item if this Flowable
signals exactly one item or signals an IllegalArgumentException
if this Flowable signals
more than one item.
Publisher
in an
unbounded manner (i.e., without applying backpressure).singleElement
does not operate by default on a particular Scheduler
.Returns a Single that emits the single item emitted by this Flowable, if this Flowable
emits only a single item, otherwise
if this Flowable completes without emitting any items a NoSuchElementException
will be signalled and
if this Flowable emits more than one item, an IllegalArgumentException
will be signalled.
Publisher
in an
unbounded manner (i.e., without applying backpressure).singleOrError
does not operate by default on a particular Scheduler
.Returns a Flowable that skips the first count
items emitted by the source Publisher and emits
the remainder.
Publisher
's backpressure
behavior.skip
does not operate by default on a particular Scheduler
.count | the number of items to skip |
---|
count
items that the source Publisher emitsReturns a Flowable that skips values emitted by the source Publisher before a specified time window
on a specified Scheduler
elapses.
Publisher
in an unbounded manner (i.e., no backpressure applied to it).Scheduler
this operator will use for the timed skippingtime | the length of the time window to skip |
---|---|
unit | the time unit of time |
scheduler | the Scheduler on which the timed wait happens |
time
and scheduler
elapses, and then emits the remainderReturns a Flowable that skips values emitted by the source Publisher before a specified time window elapses.
Publisher
in an unbounded manner (i.e., no backpressure applied to it).skip
does not operate on any particular scheduler but uses the current time
from the computation
Scheduler
.time | the length of the time window to skip |
---|---|
unit | the time unit of time |
time
elapses and the emits the remainderReturns a Flowable that drops a specified number of items from the end of the sequence emitted by the source Publisher.
This Subscriber accumulates a queue long enough to store the first count
items. As more items are
received, items are taken from the front of the queue and emitted by the returned Publisher. This causes
such items to be delayed.
Publisher
's backpressure
behavior.skipLast
does not operate by default on a particular Scheduler
.count | number of items to drop from the end of the source sequence |
---|
IndexOutOfBoundsException | if count is less than zero |
---|
Returns a Flowable that drops items emitted by the source Publisher during a specified time window before the source completes.
Note: this action will cache the latest items arriving in the specified time window.
Publisher
in an unbounded manner (i.e., no backpressure applied to it).skipLast
does not operate on any particular scheduler but uses the current time
from the computation
Scheduler
.time | the length of the time window |
---|---|
unit | the time unit of time |
time
Returns a Flowable that drops items emitted by the source Publisher during a specified time window before the source completes.
Note: this action will cache the latest items arriving in the specified time window.
Publisher
in an unbounded manner (i.e., no backpressure applied to it).skipLast
does not operate on any particular scheduler but uses the current time
from the computation
Scheduler
.time | the length of the time window |
---|---|
unit | the time unit of time |
delayError | if true, an exception signalled by the current Flowable is delayed until the regular elements are consumed by the downstream; if false, an exception is immediately signalled and all regular elements dropped |
time
Returns a Flowable that drops items emitted by the source Publisher during a specified time window (defined on a specified scheduler) before the source completes.
Note: this action will cache the latest items arriving in the specified time window.
Publisher
in an unbounded manner (i.e., no backpressure applied to it).Scheduler
this operator will use for tracking the current timetime | the length of the time window |
---|---|
unit | the time unit of time |
scheduler | the scheduler used as the time source |
time
and scheduler
Returns a Flowable that drops items emitted by the source Publisher during a specified time window (defined on a specified scheduler) before the source completes.
Note: this action will cache the latest items arriving in the specified time window.
Publisher
in an unbounded manner (i.e., no backpressure applied to it).Scheduler
this operator will usetime | the length of the time window |
---|---|
unit | the time unit of time |
scheduler | the scheduler used as the time source |
delayError | if true, an exception signalled by the current Flowable is delayed until the regular elements are consumed by the downstream; if false, an exception is immediately signalled and all regular elements dropped |
bufferSize | the hint about how many elements to expect to be skipped |
time
and scheduler
Returns a Flowable that drops items emitted by the source Publisher during a specified time window (defined on a specified scheduler) before the source completes.
Note: this action will cache the latest items arriving in the specified time window.
Publisher
in an unbounded manner (i.e., no backpressure applied to it).Scheduler
this operator will use to track the current timetime | the length of the time window |
---|---|
unit | the time unit of time |
scheduler | the scheduler used as the time source |
delayError | if true, an exception signalled by the current Flowable is delayed until the regular elements are consumed by the downstream; if false, an exception is immediately signalled and all regular elements dropped |
time
and scheduler
Returns a Flowable that skips items emitted by the source Publisher until a second Publisher emits an item.
Publisher
's backpressure
behavior.skipUntil
does not operate by default on a particular Scheduler
.other | the second Publisher that has to emit an item before the source Publisher's elements begin to be mirrored by the resulting Publisher |
---|
Returns a Flowable that skips all items emitted by the source Publisher as long as a specified condition holds true, but emits all further source items as soon as the condition becomes false.
Publisher
's backpressure
behavior.skipWhile
does not operate by default on a particular Scheduler
.predicate | a function to test each item emitted from the source Publisher |
---|
Returns a Flowable that emits the events emitted by source Publisher, in a
sorted order. Each item emitted by the Publisher must implement Comparable
with respect to all
other items in the sequence.
If any item emitted by this Flowable does not implement Comparable
with respect to
all other items emitted by this Flowable, no items will be emitted and the
sequence is terminated with a ClassCastException.
Note that calling sorted
with long, non-terminating or infinite sources
might cause OutOfMemoryError
Publisher
in an
unbounded manner (i.e., without applying backpressure to it).sorted
does not operate by default on a particular Scheduler
.Returns a Flowable that emits the events emitted by source Publisher, in a sorted order based on a specified comparison function.
Note that calling sorted
with long, non-terminating or infinite sources
might cause OutOfMemoryError
Publisher
in an
unbounded manner (i.e., without applying backpressure to it).sorted
does not operate by default on a particular Scheduler
.sortFunction | a function that compares two items emitted by the source Publisher and returns an Integer that indicates their sort order |
---|
Returns a Flowable that emits the items in a specified Publisher before it begins to emit items emitted by the source Publisher.
other
Publisher
s
are expected to honor backpressure as well. If any of then violates this rule, it may throw an
IllegalStateException
when the source Publisher
completes.startWith
does not operate by default on a particular Scheduler
.other | a Publisher that contains the items you want the modified Publisher to emit first |
---|
Returns a Flowable that emits the items in a specified Iterable
before it begins to emit items
emitted by the source Publisher.
Publisher
is expected to honor backpressure as well. If it violates this rule, it may throw an
IllegalStateException
when the source Publisher
completes.startWith
does not operate by default on a particular Scheduler
.items | an Iterable that contains the items you want the modified Publisher to emit first |
---|
Iterable
and then emits the items
emitted by the source PublisherReturns a Flowable that emits a specified item before it begins to emit items emitted by the source Publisher.
Publisher
is expected to honor backpressure as well. If it violates this rule, it may throw an
IllegalStateException
when the source Publisher
completes.startWith
does not operate by default on a particular Scheduler
.value | the item to emit first |
---|
Returns a Flowable that emits the specified items before it begins to emit items emitted by the source Publisher.
Publisher
is expected to honor backpressure as well. If it violates this rule, it may throw an
IllegalStateException
when the source Publisher
completes.startWithArray
does not operate by default on a particular Scheduler
.items | the array of values to emit first |
---|
Establish a connection between this Flowable and the given FlowableSubscriber and start streaming events based on the demand of the FlowableSubscriber.
This is a "factory method" and can be called multiple times, each time starting a new Subscription.
Each Subscription will work for only a single FlowableSubscriber
.
If the same FlowableSubscriber
instance is subscribed to multiple Flowable
s and/or the
same Flowable
multiple times, it must ensure the serialization over its onXXX
methods manually.
If the Flowable
rejects the subscription attempt or otherwise fails it will signal
the error via onError(Throwable)
.
This subscribe method relaxes the following Reactive-Streams rules:
FlowableSubscriber
.subscribe
does not operate by default on a particular Scheduler
.History: 2.0.7 - experimental
s | the FlowableSubscriber that will consume signals from this Flowable |
---|
Subscribes to a Publisher and provides callbacks to handle the items it emits and any error or completion notification it issues.
Publisher
in an unbounded manner (i.e., no
backpressure is applied to it).subscribe
does not operate by default on a particular Scheduler
.onNext | the Consumer<T> you have designed to accept emissions from the Publisher |
---|---|
onError | the Consumer<Throwable> you have designed to accept any error notification from the
Publisher |
onComplete | the Action you have designed to accept a completion notification from the
Publisher |
Disposable
reference with which the caller can stop receiving items before
the Publisher has finished sending themNullPointerException | if onNext is null, or
if onError is null, or
if onComplete is null |
---|
Subscribes to a Publisher and provides callbacks to handle the items it emits and any error or completion notification it issues.
Publisher
in an unbounded manner (i.e., no
backpressure is applied to it).subscribe
does not operate by default on a particular Scheduler
.onNext | the Consumer<T> you have designed to accept emissions from the Publisher |
---|---|
onError | the Consumer<Throwable> you have designed to accept any error notification from the
Publisher |
onComplete | the Action you have designed to accept a completion notification from the
Publisher |
onSubscribe | the Consumer that receives the upstream's Subscription |
Disposable
reference with which the caller can stop receiving items before
the Publisher has finished sending themNullPointerException | if onNext is null, or
if onError is null, or
if onComplete is null |
---|
Subscribes to a Publisher and ignores onNext
and onComplete
emissions.
If the Flowable emits an error, it is wrapped into an
OnErrorNotImplementedException
and routed to the RxJavaPlugins.onError handler.
Publisher
in an unbounded manner (i.e., no
backpressure is applied to it).subscribe
does not operate by default on a particular Scheduler
.Disposable
reference with which the caller can stop receiving items before
the Publisher has finished sending themSubscribes to a Publisher and provides a callback to handle the items it emits.
If the Flowable emits an error, it is wrapped into an
OnErrorNotImplementedException
and routed to the RxJavaPlugins.onError handler.
Publisher
in an unbounded manner (i.e., no
backpressure is applied to it).subscribe
does not operate by default on a particular Scheduler
.onNext | the Consumer<T> you have designed to accept emissions from the Publisher |
---|
Disposable
reference with which the caller can stop receiving items before
the Publisher has finished sending themNullPointerException | if onNext is null |
---|
Subscribes to a Publisher and provides callbacks to handle the items it emits and any error notification it issues.
Publisher
in an unbounded manner (i.e., no
backpressure is applied to it).subscribe
does not operate by default on a particular Scheduler
.onNext | the Consumer<T> you have designed to accept emissions from the Publisher |
---|---|
onError | the Consumer<Throwable> you have designed to accept any error notification from the
Publisher |
Disposable
reference with which the caller can stop receiving items before
the Publisher has finished sending themNullPointerException | if onNext is null, or
if onError is null
|
---|
Asynchronously subscribes Subscribers to this Publisher on the specified Scheduler
.
If there is a create(FlowableOnSubscribe, BackpressureStrategy)
type source up in the
chain, it is recommended to use subscribeOn(scheduler, false)
instead
to avoid same-pool deadlock because requests may pile up behind an eager/blocking emitter.
Publisher
's backpressure
behavior.Scheduler
this operator will usescheduler | the Scheduler to perform subscription actions on |
---|
Scheduler
Asynchronously subscribes Subscribers to this Publisher on the specified Scheduler
optionally reroutes requests from other threads to the same Scheduler
thread.
If there is a create(FlowableOnSubscribe, BackpressureStrategy)
type source up in the
chain, it is recommended to have requestOn
false to avoid same-pool deadlock
because requests may pile up behind an eager/blocking emitter.
Publisher
's backpressure
behavior.Scheduler
this operator will usescheduler | the Scheduler to perform subscription actions on |
---|---|
requestOn | 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
Subscribes a given Subscriber (subclass) to this Flowable and returns the given Subscriber as is.
Usage example:
Flowable<Integer> source = Flowable.range(1, 10);
CompositeDisposable composite = new CompositeDisposable();
ResourceSubscriber<Integer> rs = new ResourceSubscriber<>() {
// ...
};
composite.add(source.subscribeWith(rs));
Subscriber
.subscribeWith
does not operate by default on a particular Scheduler
.subscriber | the Subscriber (subclass) to use and return, not null |
---|
subscriber
NullPointerException | if subscriber is null |
---|
Returns a Flowable that emits the items emitted by the source Publisher or the items of an alternate
Publisher if the source Publisher is empty.
Publisher
is empty, the alternate Publisher
is expected to honor backpressure.
If the source Publisher
is non-empty, it is expected to honor backpressure as instead.
In either case, if violated, a MissingBackpressureException
may get
signalled somewhere downstream.
switchIfEmpty
does not operate by default on a particular Scheduler
.other | the alternate Publisher to subscribe to if the source does not emit any items |
---|
Returns a new Publisher by applying a function that you supply to each item emitted by the source Publisher that returns a Publisher, and then emitting the items emitted by the most recently emitted of these Publishers.
The resulting Publisher completes if both the upstream Publisher and the last inner Publisher, if any, complete. If the upstream Publisher signals an onError, the inner Publisher is cancelled and the error delivered in-sequence.
Publisher
is consumed in an
unbounded manner (i.e., without backpressure) and the inner Publisher
s are expected to honor
backpressure but it is not enforced; the operator won't signal a MissingBackpressureException
but the violation may lead to OutOfMemoryError
due to internal buffer bloat.switchMap
does not operate by default on a particular Scheduler
.mapper | a function that, when applied to an item emitted by the source Publisher, returns an Publisher |
---|---|
bufferSize | the number of elements to prefetch from the current active inner Publisher |
func
to the most recently emitted item emitted by the source PublisherReturns a new Publisher by applying a function that you supply to each item emitted by the source Publisher that returns a Publisher, and then emitting the items emitted by the most recently emitted of these Publishers.
The resulting Publisher completes if both the upstream Publisher and the last inner Publisher, if any, complete. If the upstream Publisher signals an onError, the inner Publisher is cancelled and the error delivered in-sequence.
Publisher
is consumed in an
unbounded manner (i.e., without backpressure) and the inner Publisher
s are expected to honor
backpressure but it is not enforced; the operator won't signal a MissingBackpressureException
but the violation may lead to OutOfMemoryError
due to internal buffer bloat.switchMap
does not operate by default on a particular Scheduler
.mapper | a function that, when applied to an item emitted by the source Publisher, returns an Publisher |
---|
func
to the most recently emitted item emitted by the source PublisherReturns a new Publisher by applying a function that you supply to each item emitted by the source Publisher that returns a Publisher, and then emitting the items emitted by the most recently emitted of these Publishers and delays any error until all Publishers terminate.
The resulting Publisher completes if both the upstream Publisher and the last inner Publisher, if any, complete. If the upstream Publisher signals an onError, the termination of the last inner Publisher will emit that error as is or wrapped into a CompositeException along with the other possible errors the former inner Publishers signalled.
Publisher
is consumed in an
unbounded manner (i.e., without backpressure) and the inner Publisher
s are expected to honor
backpressure but it is not enforced; the operator won't signal a MissingBackpressureException
but the violation may lead to OutOfMemoryError
due to internal buffer bloat.switchMapDelayError
does not operate by default on a particular Scheduler
.mapper | a function that, when applied to an item emitted by the source Publisher, returns an Publisher |
---|
func
to the most recently emitted item emitted by the source PublisherReturns a new Publisher by applying a function that you supply to each item emitted by the source Publisher that returns a Publisher, and then emitting the items emitted by the most recently emitted of these Publishers and delays any error until all Publishers terminate.
The resulting Publisher completes if both the upstream Publisher and the last inner Publisher, if any, complete. If the upstream Publisher signals an onError, the termination of the last inner Publisher will emit that error as is or wrapped into a CompositeException along with the other possible errors the former inner Publishers signalled.
Publisher
is consumed in an
unbounded manner (i.e., without backpressure) and the inner Publisher
s are expected to honor
backpressure but it is not enforced; the operator won't signal a MissingBackpressureException
but the violation may lead to OutOfMemoryError
due to internal buffer bloat.switchMapDelayError
does not operate by default on a particular Scheduler
.mapper | a function that, when applied to an item emitted by the source Publisher, returns an Publisher |
---|---|
bufferSize | the number of elements to prefetch from the current active inner Publisher |
func
to the most recently emitted item emitted by the source PublisherConverts a Publisher that emits Publishers into a Publisher that emits the items emitted by the most recently emitted of those Publishers.
switchOnNext
subscribes to a Publisher that emits Publishers. Each time it observes one of
these emitted Publishers, the Publisher returned by switchOnNext
begins emitting the items
emitted by that Publisher. When a new Publisher is emitted, switchOnNext
stops emitting items
from the earlier-emitted Publisher and begins emitting items from the new one.
The resulting Publisher completes if both the outer Publisher and the last inner Publisher, if any, complete. If the outer Publisher signals an onError, the inner Publisher is cancelled and the error delivered in-sequence.
Publisher
is consumed in an
unbounded manner (i.e., without backpressure) and the inner Publisher
s are expected to honor
backpressure but it is not enforced; the operator won't signal a MissingBackpressureException
but the violation may lead to OutOfMemoryError
due to internal buffer bloat.switchOnNext
does not operate by default on a particular Scheduler
.sources | the source Publisher that emits Publishers |
---|---|
bufferSize | the number of items to prefetch from the inner Publishers |
Converts a Publisher that emits Publishers into a Publisher that emits the items emitted by the most recently emitted of those Publishers.
switchOnNext
subscribes to a Publisher that emits Publishers. Each time it observes one of
these emitted Publishers, the Publisher returned by switchOnNext
begins emitting the items
emitted by that Publisher. When a new Publisher is emitted, switchOnNext
stops emitting items
from the earlier-emitted Publisher and begins emitting items from the new one.
The resulting Publisher completes if both the outer Publisher and the last inner Publisher, if any, complete. If the outer Publisher signals an onError, the inner Publisher is cancelled and the error delivered in-sequence.
Publisher
is consumed in an
unbounded manner (i.e., without backpressure) and the inner Publisher
s are expected to honor
backpressure but it is not enforced; the operator won't signal a MissingBackpressureException
but the violation may lead to OutOfMemoryError
due to internal buffer bloat.switchOnNext
does not operate by default on a particular Scheduler
.sources | the source Publisher that emits Publishers |
---|
Converts a Publisher that emits Publishers into a Publisher that emits the items emitted by the most recently emitted of those Publishers and delays any exception until all Publishers terminate.
switchOnNext
subscribes to a Publisher that emits Publishers. Each time it observes one of
these emitted Publishers, the Publisher returned by switchOnNext
begins emitting the items
emitted by that Publisher. When a new Publisher is emitted, switchOnNext
stops emitting items
from the earlier-emitted Publisher and begins emitting items from the new one.
The resulting Publisher completes if both the main Publisher and the last inner Publisher, if any, complete. If the main Publisher signals an onError, the termination of the last inner Publisher will emit that error as is or wrapped into a CompositeException along with the other possible errors the former inner Publishers signalled.
Publisher
is consumed in an
unbounded manner (i.e., without backpressure) and the inner Publisher
s are expected to honor
backpressure but it is not enforced; the operator won't signal a MissingBackpressureException
but the violation may lead to OutOfMemoryError
due to internal buffer bloat.switchOnNextDelayError
does not operate by default on a particular Scheduler
.sources | the source Publisher that emits Publishers |
---|---|
prefetch | the number of items to prefetch from the inner Publishers |
Converts a Publisher that emits Publishers into a Publisher that emits the items emitted by the most recently emitted of those Publishers and delays any exception until all Publishers terminate.
switchOnNext
subscribes to a Publisher that emits Publishers. Each time it observes one of
these emitted Publishers, the Publisher returned by switchOnNext
begins emitting the items
emitted by that Publisher. When a new Publisher is emitted, switchOnNext
stops emitting items
from the earlier-emitted Publisher and begins emitting items from the new one.
The resulting Publisher completes if both the main Publisher and the last inner Publisher, if any, complete. If the main Publisher signals an onError, the termination of the last inner Publisher will emit that error as is or wrapped into a CompositeException along with the other possible errors the former inner Publishers signalled.
Publisher
is consumed in an
unbounded manner (i.e., without backpressure) and the inner Publisher
s are expected to honor
backpressure but it is not enforced; the operator won't signal a MissingBackpressureException
but the violation may lead to OutOfMemoryError
due to internal buffer bloat.switchOnNextDelayError
does not operate by default on a particular Scheduler
.sources | the source Publisher that emits Publishers |
---|
Returns a Flowable that emits those items emitted by source Publisher before a specified time runs out.
Publisher
's backpressure
behavior.take
operates by default on the computation
Scheduler
.time | the length of the time window |
---|---|
unit | the time unit of time |
Returns a Flowable that emits those items emitted by source Publisher before a specified time (on a specified Scheduler) runs out.
Publisher
's backpressure
behavior.Scheduler
this operator will usetime | the length of the time window |
---|---|
unit | the time unit of time |
scheduler | the Scheduler used for time source |
Returns a Flowable that emits only the first count
items emitted by the source Publisher. If the source emits fewer than
count
items then all of its items are emitted.
This method returns a Publisher that will invoke a subscribing Subscriber's
onNext
function a maximum of count
times before invoking
onComplete
.
Publisher
's backpressure
behavior in case the first request is smaller than the count
. Otherwise, the source Publisher
is consumed in an unbounded manner (i.e., without applying backpressure to it).take
does not operate by default on a particular Scheduler
.count | the maximum number of items to emit |
---|
count
items emitted by the source Publisher, or
all of the items from the source Publisher if that Publisher emits fewer than count
itemsReturns a Flowable that emits the items from the source Publisher that were emitted in a specified window of time before the Publisher completed.
Publisher
in an
unbounded manner (i.e., no backpressure is applied to it) but note that this may
lead to OutOfMemoryError
due to internal buffer bloat.
Consider using takeLast(long, long, TimeUnit)
in this case.takeLast
operates by default on the computation
Scheduler
.time | the length of the time window |
---|---|
unit | the time unit of time |
delayError | if true, an exception signalled by the current Flowable is delayed until the regular elements are consumed by the downstream; if false, an exception is immediately signalled and all regular elements dropped |
time
Returns a Flowable that emits at most a specified number of items from the source Publisher that were emitted in a specified window of time before the Publisher completed, where the timing information is provided by a given Scheduler.
Publisher
in an
unbounded manner (i.e., no backpressure is applied to it).Scheduler
this operator will use for tracking the current timecount | the maximum number of items to emit |
---|---|
time | the length of the time window |
unit | the time unit of time |
scheduler | the Scheduler that provides the timestamps for the observed items |
delayError | if true, an exception signalled by the current Flowable is delayed until the regular elements are consumed by the downstream; if false, an exception is immediately signalled and all regular elements dropped |
bufferSize | the hint about how many elements to expect to be last |
count
items from the source Publisher that were emitted
in a specified window of time before the Publisher completed, where the timing information is
provided by the given scheduler
IndexOutOfBoundsException | if count is less than zero |
---|
Returns a Flowable that emits the items from the source Publisher that were emitted in a specified window of time before the Publisher completed, where the timing information is provided by a specified Scheduler.
Publisher
in an
unbounded manner (i.e., no backpressure is applied to it) but note that this may
lead to OutOfMemoryError
due to internal buffer bloat.
Consider using takeLast(long, long, TimeUnit, Scheduler)
in this case.Scheduler
this operator will usetime | the length of the time window |
---|---|
unit | the time unit of time |
scheduler | the Scheduler that provides the timestamps for the Observed items |
time
, where the timing information is
provided by scheduler
Returns a Flowable that emits the items from the source Publisher that were emitted in a specified window of time before the Publisher completed, where the timing information is provided by a specified Scheduler.
Publisher
in an
unbounded manner (i.e., no backpressure is applied to it) but note that this may
lead to OutOfMemoryError
due to internal buffer bloat.
Consider using takeLast(long, long, TimeUnit, Scheduler)
in this case.Scheduler
this operator will usetime | the length of the time window |
---|---|
unit | the time unit of time |
scheduler | the Scheduler that provides the timestamps for the Observed items |
delayError | if true, an exception signalled by the current Flowable is delayed until the regular elements are consumed by the downstream; if false, an exception is immediately signalled and all regular elements dropped |
time
, where the timing information is
provided by scheduler
Returns a Flowable that emits at most the last count
items emitted by the source Publisher. If the source emits fewer than
count
items then all of its items are emitted.
count
is non-zero; ignores
backpressure if the count
is zero as it doesn't signal any values.takeLast
does not operate by default on a particular Scheduler
.count | the maximum number of items to emit from the end of the sequence of items emitted by the source Publisher |
---|
count
items emitted by the source PublisherIndexOutOfBoundsException | if count is less than zero |
---|
Returns a Flowable that emits the items from the source Publisher that were emitted in a specified window of time before the Publisher completed.
Publisher
in an
unbounded manner (i.e., no backpressure is applied to it) but note that this may
lead to OutOfMemoryError
due to internal buffer bloat.
Consider using takeLast(long, long, TimeUnit)
in this case.takeLast
operates by default on the computation
Scheduler
.time | the length of the time window |
---|---|
unit | the time unit of time |
time
Returns a Flowable that emits at most a specified number of items from the source Publisher that were emitted in a specified window of time before the Publisher completed.
Publisher
in an
unbounded manner (i.e., no backpressure is applied to it).takeLast
does not operate on any particular scheduler but uses the current time
from the computation
Scheduler
.count | the maximum number of items to emit |
---|---|
time | the length of the time window |
unit | the time unit of time |
count
items from the source Publisher that were emitted
in a specified window of time before the Publisher completedReturns a Flowable that emits at most a specified number of items from the source Publisher that were emitted in a specified window of time before the Publisher completed, where the timing information is provided by a given Scheduler.
Publisher
in an
unbounded manner (i.e., no backpressure is applied to it).Scheduler
this operator will use for tracking the current timecount | the maximum number of items to emit |
---|---|
time | the length of the time window |
unit | the time unit of time |
scheduler | the Scheduler that provides the timestamps for the observed items |
count
items from the source Publisher that were emitted
in a specified window of time before the Publisher completed, where the timing information is
provided by the given scheduler
IndexOutOfBoundsException | if count is less than zero |
---|
Returns a Flowable that emits the items from the source Publisher that were emitted in a specified window of time before the Publisher completed, where the timing information is provided by a specified Scheduler.
Publisher
in an
unbounded manner (i.e., no backpressure is applied to it) but note that this may
lead to OutOfMemoryError
due to internal buffer bloat.
Consider using takeLast(long, long, TimeUnit, Scheduler)
in this case.Scheduler
this operator will usetime | the length of the time window |
---|---|
unit | the time unit of time |
scheduler | the Scheduler that provides the timestamps for the Observed items |
delayError | if true, an exception signalled by the current Flowable is delayed until the regular elements are consumed by the downstream; if false, an exception is immediately signalled and all regular elements dropped |
bufferSize | the hint about how many elements to expect to be last |
time
, where the timing information is
provided by scheduler
Returns a Flowable that emits the items emitted by the source Publisher until a second Publisher emits an item.
Publisher
's backpressure
behavior.takeUntil
does not operate by default on a particular Scheduler
.other | the Publisher whose first emitted item will cause takeUntil to stop emitting items
from the source Publisher |
---|
other
emits its first itemReturns a Flowable that emits items emitted by the source Publisher, checks the specified predicate for each item, and then completes when the condition is satisfied.
The difference between this operator and takeWhile(Predicate)
is that here, the condition is
evaluated after the item is emitted.
takeUntil
does not operate by default on a particular Scheduler
.stopPredicate | a function that evaluates an item emitted by the source Publisher and returns a Boolean |
---|
Returns a Flowable that emits items emitted by the source Publisher so long as each item satisfied a specified condition, and then completes as soon as this condition is not satisfied.
Publisher
's backpressure
behavior.takeWhile
does not operate by default on a particular Scheduler
.predicate | a function that evaluates an item emitted by the source Publisher and returns a Boolean |
---|
predicate
, then completesCreates a TestSubscriber with the given initial request amount and subscribes it to this Flowable.
initialRequest
amount upfront.test
does not operate by default on a particular Scheduler
.initialRequest | the initial request amount, positive |
---|
Creates a TestSubscriber that requests Long.MAX_VALUE and subscribes it to this Flowable.
test
does not operate by default on a particular Scheduler
.Creates a TestSubscriber with the given initial request amount, optionally cancels it before the subscription and subscribes it to this Flowable.
initialRequest
amount upfront.test
does not operate by default on a particular Scheduler
.initialRequest | the initial request amount, positive |
---|---|
cancel | should the TestSubscriber be cancelled before the subscription? |
Returns a Flowable that emits only the first item emitted by the source Publisher during sequential time windows of a specified duration.
This differs from throttleLast(long, TimeUnit)
in that this only tracks passage of time whereas
throttleLast(long, TimeUnit)
ticks at scheduled intervals.
throttleFirst
operates by default on the computation
Scheduler
.windowDuration | time to wait before emitting another item after emitting the last item |
---|---|
unit | the unit of time of windowDuration |
Returns a Flowable that emits only the first item emitted by the source Publisher during sequential time windows of a specified duration, where the windows are managed by a specified Scheduler.
This differs from throttleLast(long, TimeUnit)
in that this only tracks passage of time whereas
throttleLast(long, TimeUnit)
ticks at scheduled intervals.
Scheduler
this operator will useskipDuration | time to wait before emitting another item after emitting the last item |
---|---|
unit | the unit of time of skipDuration |
scheduler | the Scheduler to use internally to manage the timers that handle timeout for each
event |
Returns a Flowable that emits only the last item emitted by the source Publisher during sequential time windows of a specified duration, where the duration is governed by a specified Scheduler.
This differs from throttleFirst(long, TimeUnit)
in that this ticks along at a scheduled interval whereas
throttleFirst(long, 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 Publisher will be emitted |
---|---|
unit | the unit of time of intervalDuration |
scheduler | the Scheduler to use internally to manage the timers that handle timeout for each
event |
Returns a Flowable that emits only the last item emitted by the source Publisher during sequential time windows of a specified duration.
This differs from throttleFirst(long, TimeUnit)
in that this ticks along at a scheduled interval whereas
throttleFirst(long, TimeUnit)
does not tick, it just tracks passage of time.
throttleLast
operates by default on the computation
Scheduler
.intervalDuration | duration of windows within which the last item emitted by the source Publisher will be emitted |
---|---|
unit | the unit of time of intervalDuration |
Returns a Flowable that only emits those items emitted by the source Publisher that are not followed by another emitted item within a specified time window, where the time window is governed by a specified Scheduler.
Note: If the source Publisher keeps emitting items more frequently than the length of the time window then no items will be emitted by the resulting Publisher.
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 Publisher in which that Publisher emits no items in order for the item to be emitted by the resulting Publisher |
---|---|
unit | the TimeUnit of timeout |
scheduler | the Scheduler to use internally to manage the timers that handle the timeout for each
item |
Returns a Flowable that only emits those items emitted by the source Publisher that are not followed by another emitted item within a specified time window.
Note: If the source Publisher keeps emitting items more frequently than the length of the time window then no items will be emitted by the resulting Publisher.
Information on debounce vs throttle:
throttleWithTimeout
operates by default on the computation
Scheduler
.timeout | the length of the window of time that must pass after the emission of an item from the source Publisher in which that Publisher emits no items in order for the item to be emitted by the resulting Publisher |
---|---|
unit | the TimeUnit of timeout |
Returns a Flowable that emits records of the time interval between consecutive items emitted by the source Publisher, where this interval is computed on a specified Scheduler.
Publisher
's backpressure
behavior.Scheduler
.scheduler | the Scheduler used to compute time intervals |
---|
Returns a Flowable that emits records of the time interval between consecutive items emitted by the source Publisher, where this interval is computed on a specified Scheduler.
Publisher
's backpressure
behavior.Scheduler
.unit | the time unit for the current time |
---|---|
scheduler | the Scheduler used to compute time intervals |
Returns a Flowable that emits records of the time interval between consecutive items emitted by the source Publisher.
Publisher
's backpressure
behavior.timeInterval
does not operate on any particular scheduler but uses the current time
from the computation
Scheduler
.Returns a Flowable that emits records of the time interval between consecutive items emitted by the source Publisher.
Publisher
's backpressure
behavior.timeInterval
does not operate on any particular scheduler but uses the current time
from the computation
Scheduler
.unit | the time unit for the current time |
---|
Returns a Flowable that mirrors the source Publisher, but notifies Subscribers of a
TimeoutException
if an item emitted by the source Publisher doesn't arrive within a window of
time after the emission of the previous item, where that period of time is measured by a Publisher that
is a function of the previous item.
Note: The arrival of the first source item is never timed out.
Publisher
sources are expected to honor backpressure as well.
If any of the source Publisher
s violate this, it may throw an
IllegalStateException
when the source Publisher
completes.timeout
operates by default on the immediate
Scheduler
.itemTimeoutIndicator | a function that returns a Publisher for each item emitted by the source Publisher and that determines the timeout window for the subsequent item |
---|
TimeoutException
if an item emitted by the source Publisher takes longer to arrive than
the time window defined by the selector for the previously emitted itemReturns a Flowable that mirrors the source Publisher, but notifies Subscribers of a
TimeoutException
if either the first item emitted by the source Publisher or any subsequent item
doesn't arrive within time windows defined by other Publishers.
Publisher
s
are expected to honor backpressure as well. If any of then violates this rule, it may throw an
IllegalStateException
when the Publisher
completes.timeout
does not operates by default on any Scheduler
.firstTimeoutIndicator | a function that returns a Publisher that determines the timeout window for the first source item |
---|---|
itemTimeoutIndicator | a function that returns a Publisher for each item emitted by the source Publisher and that determines the timeout window in which the subsequent source item must arrive in order to continue the sequence |
TimeoutException
if either the first item or any subsequent item doesn't arrive within
the time windows specified by the timeout selectorsReturns a Flowable that mirrors the source Publisher but applies a timeout policy for each emitted
item. If the next item isn't emitted within the specified timeout duration starting from its predecessor,
the resulting Publisher terminates and notifies Subscribers of a TimeoutException
.
Publisher
's backpressure
behavior.timeout
operates by default on the computation
Scheduler
.timeout | maximum duration between emitted items before a timeout occurs |
---|---|
timeUnit | the unit of time that applies to the timeout argument. |
TimeoutException
in case of a
timeoutReturns a Flowable that mirrors the source Publisher, but switches to a fallback Publisher if either the first item emitted by the source Publisher or any subsequent item doesn't arrive within time windows defined by other Publishers.
Publisher
sources are expected to honor backpressure as well.
If any of the source Publisher
s violate this, it may throw an
IllegalStateException
when the source Publisher
completes.timeout
does not operates by default on any Scheduler
.firstTimeoutIndicator | a function that returns a Publisher which determines the timeout window for the first source item |
---|---|
itemTimeoutIndicator | a function that returns a Publisher for each item emitted by the source Publisher and that determines the timeout window in which the subsequent source item must arrive in order to continue the sequence |
other | the fallback Publisher to switch to if the source Publisher times out |
other
Publisher if
either the first item emitted by the source Publisher or any subsequent item doesn't arrive
within time windows defined by the timeout selectorsNullPointerException | if itemTimeoutIndicator is null |
---|
Returns a Flowable that mirrors the source Publisher, but that switches to a fallback Publisher if an item emitted by the source Publisher doesn't arrive within a window of time after the emission of the previous item, where that period of time is measured by a Publisher that is a function of the previous item.
Note: The arrival of the first source item is never timed out.
Publisher
sources are expected to honor backpressure as well.
If any of the source Publisher
s violate this, it may throw an
IllegalStateException
when the source Publisher
completes.timeout
operates by default on the immediate
Scheduler
.itemTimeoutIndicator | a function that returns a Publisher, for each item emitted by the source Publisher, that determines the timeout window for the subsequent item |
---|---|
other | the fallback Publisher to switch to if the source Publisher times out |
Returns a Flowable that mirrors the source Publisher but applies a timeout policy for each emitted item. If the next item isn't emitted within the specified timeout duration starting from its predecessor, the resulting Publisher begins instead to mirror a fallback Publisher.
Publisher
sources are expected to honor backpressure as well.
If any of the source Publisher
s violate this, it may throw an
IllegalStateException
when the source Publisher
completes.timeout
operates by default on the computation
Scheduler
.timeout | maximum duration between items before a timeout occurs |
---|---|
timeUnit | the unit of time that applies to the timeout argument |
other | the fallback Publisher to use in case of a timeout |
Returns a Flowable that mirrors the source Publisher but applies a timeout policy for each emitted item using a specified Scheduler. If the next item isn't emitted within the specified timeout duration starting from its predecessor, the resulting Publisher begins instead to mirror a fallback Publisher.
Publisher
sources are expected to honor backpressure as well.
If any of the source Publisher
s violate this, it may throw an
IllegalStateException
when the source Publisher
completes.Scheduler
this operator will usetimeout | maximum duration between items before a timeout occurs |
---|---|
timeUnit | the unit of time that applies to the timeout argument |
scheduler | the Scheduler to run the timeout timers on |
other | the Publisher to use as the fallback in case of a timeout |
Returns a Flowable that mirrors the source Publisher but applies a timeout policy for each emitted
item, where this policy is governed on a specified Scheduler. If the next item isn't emitted within the
specified timeout duration starting from its predecessor, the resulting Publisher terminates and
notifies Subscribers of a TimeoutException
.
Publisher
's backpressure
behavior.Scheduler
this operator will usetimeout | maximum duration between items before a timeout occurs |
---|---|
timeUnit | the unit of time that applies to the timeout argument |
scheduler | the Scheduler to run the timeout timers on |
TimeoutException
in case of a
timeoutReturns a Flowable that emits 0L
after a specified delay, and then completes.
onBackpressureDrop()
.timer
operates by default on the computation
Scheduler
.delay | the initial delay before emitting a single 0L |
---|---|
unit | time units to use for delay |
0L
after a specified delay, and then completesReturns a Flowable that emits 0L
after a specified delay, on a specified Scheduler, and then
completes.
onBackpressureDrop()
.Scheduler
this operator will usedelay | the initial delay before emitting a single 0L |
---|---|
unit | time units to use for delay |
scheduler | the Scheduler to use for scheduling the item |
0L
after a specified delay, on a specified Scheduler, and then
completesReturns a Flowable that emits each item emitted by the source Publisher, wrapped in a
Timed
object whose timestamps are provided by a specified Scheduler.
Publisher
's backpressure
behavior.Scheduler
.unit | the time unit for the current time |
---|---|
scheduler | the Scheduler to use as a time source |
scheduler
Returns a Flowable that emits each item emitted by the source Publisher, wrapped in a
Timed
object.
Publisher
's backpressure
behavior.timestamp
does not operate on any particular scheduler but uses the current time
from the computation
Scheduler
.Returns a Flowable that emits each item emitted by the source Publisher, wrapped in a
Timed
object whose timestamps are provided by a specified Scheduler.
Publisher
's backpressure
behavior.Scheduler
.scheduler | the Scheduler to use as a time source |
---|
scheduler
Returns a Flowable that emits each item emitted by the source Publisher, wrapped in a
Timed
object.
Publisher
's backpressure
behavior.timestamp
does not operate on any particular scheduler but uses the current time
from the computation
Scheduler
.unit | the time unit for the current time |
---|
Calls the specified converter function during assembly time and returns its resulting value.
This allows fluent conversion to any other type.
converter
function.to
does not operate by default on a particular Scheduler
.converter | the function that receives the current Flowable instance and returns a value |
---|
Returns a Future
representing the single value emitted by this Flowable
.
If the Flowable
emits more than one item, Future
will receive an
IllegalArgumentException
. If the Flowable
is empty, Future
will receive an NoSuchElementException
.
If the Flowable
may emit more than one item, use Flowable.toList().toFuture()
.
Flowable
in an unbounded manner
(i.e., no backpressure applied to it).toFuture
does not operate by default on a particular Scheduler
.Future
that expects a single item to be emitted by this Flowable
Returns a Single that emits a single item, a list composed of all the items emitted by the finite source Publisher.
Normally, a Publisher that returns multiple items will do so by invoking its Subscriber's
onNext
method for each such item. You can change this behavior, instructing the
Publisher to compose a list of all of these items and then to invoke the Subscriber's onNext
function once, passing it the entire list, by calling the Publisher's toList
method prior to
calling its subscribe()
method.
Note that this operator requires the upstream to signal onComplete
for the accumulated collection to
be emitted. Sources that are infinite and never complete will never emit anything through this
operator and an infinite source may lead to a fatal OutOfMemoryError
.
Publisher
in an
unbounded manner (i.e., without applying backpressure to it).toList
does not operate by default on a particular Scheduler
.collectionSupplier | the Callable returning the collection (for each individual Subscriber) to be filled in |
---|
Returns a Single that emits a single item, a list composed of all the items emitted by the finite upstream source Publisher.
Normally, a Publisher that returns multiple items will do so by invoking its Subscriber's
onNext
method for each such item. You can change this behavior, instructing the
Publisher to compose a list of all of these items and then to invoke the Subscriber's onNext
function once, passing it the entire list, by calling the Publisher's toList
method prior to
calling its subscribe()
method.
Note that this operator requires the upstream to signal onComplete
for the accumulated list to
be emitted. Sources that are infinite and never complete will never emit anything through this
operator and an infinite source may lead to a fatal OutOfMemoryError
.
Publisher
in an
unbounded manner (i.e., without applying backpressure to it).toList
does not operate by default on a particular Scheduler
.Returns a Single that emits a single item, a list composed of all the items emitted by the finite source Publisher.
Normally, a Publisher that returns multiple items will do so by invoking its Subscriber's
onNext
method for each such item. You can change this behavior, instructing the
Publisher to compose a list of all of these items and then to invoke the Subscriber's onNext
function once, passing it the entire list, by calling the Publisher's toList
method prior to
calling its subscribe()
method.
Note that this operator requires the upstream to signal onComplete
for the accumulated list to
be emitted. Sources that are infinite and never complete will never emit anything through this
operator and an infinite source may lead to a fatal OutOfMemoryError
.
Publisher
in an
unbounded manner (i.e., without applying backpressure to it).toList
does not operate by default on a particular Scheduler
.capacityHint | the number of elements expected from the current Flowable |
---|
Returns a Single that emits a single HashMap containing all items emitted by the source Publisher,
mapped by the keys returned by a specified keySelector
function.
If more than one source item maps to the same key, the HashMap will contain the latest of those items.
Publisher
in an
unbounded manner (i.e., without applying backpressure to it).toMap
does not operate by default on a particular Scheduler
.keySelector | the function that extracts the key from a source item to be used in the HashMap |
---|
Returns a Single that emits a single Map, returned by a specified mapFactory
function, that
contains keys and values extracted from the items emitted by the source Publisher.
Publisher
in an
unbounded manner (i.e., without applying backpressure to it).toMap
does not operate by default on a particular Scheduler
.keySelector | the function that extracts the key from a source item to be used in the Map |
---|---|
valueSelector | the function that extracts the value from the source items to be used as value in the Map |
mapSupplier | the function that returns a Map instance to be used |
Returns a Single that emits a single HashMap containing values corresponding to items emitted by the
source Publisher, mapped by the keys returned by a specified 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.
Publisher
in an
unbounded manner (i.e., without applying backpressure to it).toMap
does not operate by default on a particular Scheduler
.keySelector | the function that extracts the key from a source item to be used in the HashMap |
---|---|
valueSelector | the function that extracts the value from a source item to be used in the HashMap |
Returns a Single that emits a single HashMap that contains an ArrayList of items emitted by the
source Publisher keyed by a specified keySelector
function.
toMultimap
does not operate by default on a particular Scheduler
.keySelector | the function that extracts the key from the source items to be used as key in the HashMap |
---|
Returns a Single that emits a single Map, returned by a specified mapFactory
function, that
contains an ArrayList of values, extracted by a specified valueSelector
function from items
emitted by the source Publisher and keyed by the keySelector
function.
Publisher
in an
unbounded manner (i.e., without applying backpressure to it).toMultimap
does not operate by default on a particular Scheduler
.keySelector | the function that extracts a key from the source items to be used as the key in the Map |
---|---|
valueSelector | the function that extracts a value from the source items to be used as the value in the Map |
mapSupplier | the function that returns a Map instance to be used |
Returns a Single that emits a single HashMap that contains an ArrayList of values extracted by a
specified valueSelector
function from items emitted by the source Publisher, keyed by a
specified keySelector
function.
Publisher
in an
unbounded manner (i.e., without applying backpressure to it).toMultimap
does not operate by default on a particular Scheduler
.keySelector | the function that extracts a key from the source items to be used as key in the HashMap |
---|---|
valueSelector | the function that extracts a value from the source items to be used as value in the HashMap |
Returns a Single that emits a single Map, returned by a specified mapFactory
function, that
contains a custom collection of values, extracted by a specified valueSelector
function from
items emitted by the source Publisher, and keyed by the keySelector
function.
Publisher
in an
unbounded manner (i.e., without applying backpressure to it).toMultimap
does not operate by default on a particular Scheduler
.keySelector | the function that extracts a key from the source items to be used as the key in the Map |
---|---|
valueSelector | the function that extracts a value from the source items to be used as the value in the Map |
mapSupplier | the function that returns a Map instance to be used |
collectionFactory | the function that returns a Collection instance for a particular key to be used in the Map |
Converts the current Flowable into a non-backpressured Observable
.
toObservable
does not operate by default on a particular Scheduler
.Returns a Single that emits a list that contains the items emitted by the source Publisher, in a sorted order based on a specified comparison function.
Publisher
in an
unbounded manner (i.e., without applying backpressure to it).toSortedList
does not operate by default on a particular Scheduler
.comparator | a function that compares two items emitted by the source Publisher and returns an Integer that indicates their sort order |
---|---|
capacityHint | the initial capacity of the ArrayList used to accumulate items before sorting |
Returns a Single that emits a list that contains the items emitted by the source Publisher, in a sorted order based on a specified comparison function.
Publisher
in an
unbounded manner (i.e., without applying backpressure to it).toSortedList
does not operate by default on a particular Scheduler
.comparator | a function that compares two items emitted by the source Publisher and returns an Integer that indicates their sort order |
---|
Returns a Single that emits a list that contains the items emitted by the source Publisher, in a
sorted order. Each item emitted by the Publisher must implement Comparable
with respect to all
other items in the sequence.
If any item emitted by this Flowable does not implement Comparable
with respect to
all other items emitted by this Flowable, no items will be emitted and the
sequence is terminated with a ClassCastException.
Publisher
in an
unbounded manner (i.e., without applying backpressure to it).toSortedList
does not operate by default on a particular Scheduler
.Returns a Flowable that emits a list that contains the items emitted by the source Publisher, in a
sorted order. Each item emitted by the Publisher must implement Comparable
with respect to all
other items in the sequence.
If any item emitted by this Flowable does not implement Comparable
with respect to
all other items emitted by this Flowable, no items will be emitted and the
sequence is terminated with a ClassCastException.
Publisher
in an
unbounded manner (i.e., without applying backpressure to it).toSortedList
does not operate by default on a particular Scheduler
.capacityHint | the initial capacity of the ArrayList used to accumulate items before sorting |
---|
Create a Flowable by wrapping a Publisher which has to be implemented according to the Reactive-Streams specification by handling backpressure and cancellation correctly; no safeguards are provided by the Flowable itself.
unsafeCreate
by default doesn't operate on any particular Scheduler
.onSubscribe | the Publisher instance to wrap |
---|
IllegalArgumentException | if onSubscribe is a subclass of Flowable ; such
instances don't need conversion and is possibly a port remnant from 1.x or one should use hide()
instead.
|
---|
Modifies the source Publisher so that subscribers will cancel it on a specified
Scheduler
.
Publisher
's backpressure
behavior.Scheduler
this operator will usescheduler | the Scheduler to perform cancellation actions on |
---|
Scheduler
Constructs a Publisher that creates a dependent resource object which is disposed of on cancellation.
resourceFactory
.using
does not operate by default on a particular Scheduler
.resourceSupplier | the factory function to create a resource object that depends on the Publisher |
---|---|
sourceSupplier | the factory function to create a Publisher |
resourceDisposer | the function that will dispose of the resource |
Constructs a Publisher that creates a dependent resource object which is disposed of just before
termination if you have set disposeEagerly
to true
and cancellation does not occur
before termination. Otherwise resource disposal will occur on cancellation. Eager disposal is
particularly appropriate for a synchronous Publisher that reuses resources. disposeAction
will
only be called once per subscription.
resourceFactory
.using
does not operate by default on a particular Scheduler
.resourceSupplier | the factory function to create a resource object that depends on the Publisher |
---|---|
sourceSupplier | the factory function to create a Publisher |
resourceDisposer | the function that will dispose of the resource |
eager | if true then disposal will happen either on cancellation or just before emission of
a terminal event (onComplete or onError ). |
Returns a Flowable that emits windows of items it collects from the source Publisher. The resulting
Publisher emits windows that contain those items emitted by the source Publisher between the time when
the windowOpenings
Publisher emits an item and when the Publisher returned by
closingSelector
emits an item.
windowOpenings
Publisher.
The inner Publishers honor backpressure and buffer everything until the associated closing
Publisher signals or completes.window
does not operate by default on a particular Scheduler
.openingIndicator | a Publisher that, when it emits an item, causes another window to be created |
---|---|
closingIndicator | a Function that produces a Publisher for every window created. When this Publisher
emits an item, the associated window is closed and emitted |
Returns a Flowable that emits windows of items it collects from the source Publisher. The resulting
Publisher starts a new window periodically, as determined by the timeskip
argument. It emits
each window after a fixed timespan, specified by the timespan
argument. When the source
Publisher completes or Publisher completes or encounters an error, the resulting Publisher emits the
current window and propagates the notification from the source Publisher.
Publisher
in an unbounded manner.
The returned Publisher
doesn't support backpressure as it uses
time to control the creation of windows. The returned inner Publisher
s honor
backpressure but have an unbounded inner buffer that may lead to OutOfMemoryError
if left unconsumed.Scheduler
this operator will usetimespan | the period of time each window collects items before it should be emitted |
---|---|
timeskip | the period of time after which a new window will be created |
unit | the unit of time that applies to the timespan and timeskip arguments |
scheduler | the Scheduler to use when determining the end and start of a window |
Returns a Flowable that emits windows of items it collects from the source Publisher. The resulting
Publisher emits connected, non-overlapping windows, each of a fixed duration specified by the
timespan
argument or a maximum size specified by the count
argument (whichever is reached
first). When the source Publisher completes or encounters an error, the resulting Publisher emits the
current window and propagates the notification from the source Publisher.
Publisher
in an unbounded manner.
The returned Publisher
doesn't support backpressure as it uses
time to control the creation of windows. The returned inner Publisher
s honor
backpressure and may hold up to count
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 window |
---|---|
unit | the unit of time which applies to the timespan argument |
scheduler | the Scheduler to use when determining the end and start of a window |
count | the maximum size of each window before it should be emitted |
restart | if true, when a window reaches the capacity limit, the timer is restarted as well |
Returns a Flowable that emits windows of items it collects from the source Publisher. The resulting
Publisher emits connected, non-overlapping windows, each of a fixed duration specified by the
timespan
argument or a maximum size specified by the count
argument (whichever is reached
first). When the source Publisher completes or encounters an error, the resulting Publisher emits the
current window and propagates the notification from the source Publisher.
Publisher
in an unbounded manner.
The returned Publisher
doesn't support backpressure as it uses
time to control the creation of windows. The returned inner Publisher
s honor
backpressure and may hold up to count
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 window |
---|---|
unit | the unit of time which applies to the timespan argument |
scheduler | the Scheduler to use when determining the end and start of a window |
count | the maximum size of each window before it should be emitted |
restart | if true, when a window reaches the capacity limit, the timer is restarted as well |
bufferSize | the capacity hint for the buffer in the inner windows |
Returns a Flowable that emits windows of items it collects from the source Publisher. The resulting
Publisher emits connected, non-overlapping windows. It emits the current window and opens a new one
whenever the Publisher produced by the specified closingSelector
emits an item.
Publisher
in an unbounded manner.
The returned Publisher
doesn't support backpressure as it uses
the closingSelector
to control the creation of windows. The returned inner Publisher
s honor
backpressure but have an unbounded inner buffer that may lead to OutOfMemoryError
if left unconsumed.window
does not operate by default on a particular Scheduler
.boundaryIndicatorSupplier | a Callable that returns a Publisher that governs the boundary between windows.
When the source Publisher emits an item, window emits the current window and begins
a new one. |
---|---|
bufferSize | the capacity hint for the buffer in the inner windows |
closingSelector
emits an itemReturns a Flowable that emits windows of items it collects from the source Publisher. The resulting
Publisher emits connected, non-overlapping windows, each of a fixed duration as specified by the
timespan
argument. When the source Publisher completes or encounters an error, the resulting
Publisher emits the current window and propagates the notification from the source Publisher.
Publisher
in an unbounded manner.
The returned Publisher
doesn't support backpressure as it uses
time to control the creation of windows. The returned inner Publisher
s honor
backpressure but have an unbounded inner buffer that may lead to OutOfMemoryError
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 window |
---|---|
unit | the unit of time which applies to the timespan argument |
scheduler | the Scheduler to use when determining the end and start of a window |
Returns a Flowable that emits windows of items it collects from the source Publisher. The resulting
Publisher starts a new window periodically, as determined by the timeskip
argument. It emits
each window after a fixed timespan, specified by the timespan
argument. When the source
Publisher completes or Publisher completes or encounters an error, the resulting Publisher emits the
current window and propagates the notification from the source Publisher.
Publisher
in an unbounded manner.
The returned Publisher
doesn't support backpressure as it uses
time to control the creation of windows. The returned inner Publisher
s honor
backpressure but have an unbounded inner buffer that may lead to OutOfMemoryError
if left unconsumed.Scheduler
this operator will usetimespan | the period of time each window collects items before it should be emitted |
---|---|
timeskip | the period of time after which a new window will be created |
unit | the unit of time that applies to the timespan and timeskip arguments |
scheduler | the Scheduler to use when determining the end and start of a window |
bufferSize | the capacity hint for the buffer in the inner windows |
Returns a Flowable that emits windows of items it collects from the source Publisher. The resulting
Publisher emits windows that contain those items emitted by the source Publisher between the time when
the windowOpenings
Publisher emits an item and when the Publisher returned by
closingSelector
emits an item.
windowOpenings
Publisher.
The inner Publishers honor backpressure and buffer everything until the associated closing
Publisher signals or completes.window
does not operate by default on a particular Scheduler
.openingIndicator | a Publisher that, when it emits an item, causes another window to be created |
---|---|
closingIndicator | a Function that produces a Publisher for every window created. When this Publisher
emits an item, the associated window is closed and emitted |
bufferSize | the capacity hint for the buffer in the inner windows |
Returns a Flowable that emits non-overlapping windows of items it collects from the source Publisher where the boundary of each window is determined by the items emitted from a specified boundary-governing Publisher.
boundary
Publisher to control data
flow. The inner Publishers honor backpressure and buffer everything until the boundary signals the next element.window
does not operate by default on a particular Scheduler
.boundaryIndicator | a Publisher whose emitted items close and open windows |
---|---|
bufferSize | the capacity hint for the buffer in the inner windows |
boundary
PublisherReturns a Flowable that emits windows of items it collects from the source Publisher. The resulting
Publisher emits connected, non-overlapping windows, each containing count
items. When the source
Publisher completes or encounters an error, the resulting Publisher emits the current window and
propagates the notification from the source Publisher.
count
elements.window
does not operate by default on a particular Scheduler
.count | the maximum size of each window before it should be emitted |
---|
count
items from the source PublisherIllegalArgumentException | if either count is non-positive |
---|
Returns a Flowable that emits windows of items it collects from the source Publisher. The resulting
Publisher emits windows every skip
items, each containing no more than count
items. When
the source Publisher completes or encounters an error, the resulting Publisher emits the current window
and propagates the notification from the source Publisher.
count
elements.window
does not operate by default on a particular Scheduler
.count | the maximum size of each window before it should be emitted |
---|---|
skip | how many items need to be skipped before starting a new window. Note that if skip and
count are equal this is the same operation as window(long) . |
skip
items containing at most count
items
from the source PublisherIllegalArgumentException | if either count or skip is non-positive |
---|
Returns a Flowable that emits windows of items it collects from the source Publisher. The resulting
Publisher starts a new window periodically, as determined by the timeskip
argument. It emits
each window after a fixed timespan, specified by the timespan
argument. When the source
Publisher completes or Publisher completes or encounters an error, the resulting Publisher emits the
current window and propagates the notification from the source Publisher.
Publisher
in an unbounded manner.
The returned Publisher
doesn't support backpressure as it uses
time to control the creation of windows. The returned inner Publisher
s honor
backpressure but have an unbounded inner buffer that may lead to OutOfMemoryError
if left unconsumed.window
operates by default on the computation
Scheduler
.timespan | the period of time each window collects items before it should be emitted |
---|---|
timeskip | the period of time after which a new window will be created |
unit | the unit of time that applies to the timespan and timeskip arguments |
Returns a Flowable that emits windows of items it collects from the source Publisher. The resulting
Publisher emits connected, non-overlapping windows. It emits the current window and opens a new one
whenever the Publisher produced by the specified closingSelector
emits an item.
Publisher
in an unbounded manner.
The returned Publisher
doesn't support backpressure as it uses
the closingSelector
to control the creation of windows. The returned inner Publisher
s honor
backpressure but have an unbounded inner buffer that may lead to OutOfMemoryError
if left unconsumed.window
does not operate by default on a particular Scheduler
.boundaryIndicatorSupplier | a Callable that returns a Publisher that governs the boundary between windows.
When the source Publisher emits an item, window emits the current window and begins
a new one. |
---|
closingSelector
emits an itemReturns a Flowable that emits windows of items it collects from the source Publisher. The resulting
Publisher emits connected, non-overlapping windows, each of a fixed duration as specified by the
timespan
argument or a maximum size as specified by the count
argument (whichever is
reached first). When the source Publisher completes or encounters an error, the resulting Publisher
emits the current window and propagates the notification from the source Publisher.
Publisher
in an unbounded manner.
The returned Publisher
doesn't support backpressure as it uses
time to control the creation of windows. The returned inner Publisher
s honor
backpressure and may hold up to count
elements at most.window
operates by default on the computation
Scheduler
.timespan | the period of time each window collects items before it should be emitted and replaced with a new window |
---|---|
unit | the unit of time that applies to the timespan argument |
count | the maximum size of each window before it should be emitted |
Returns a Flowable that emits windows of items it collects from the source Publisher. The resulting
Publisher emits connected, non-overlapping windows, each of a fixed duration as specified by the
timespan
argument or a maximum size as specified by the count
argument (whichever is
reached first). When the source Publisher completes or encounters an error, the resulting Publisher
emits the current window and propagates the notification from the source Publisher.
Publisher
in an unbounded manner.
The returned Publisher
doesn't support backpressure as it uses
time to control the creation of windows. The returned inner Publisher
s honor
backpressure and may hold up to count
elements at most.window
operates by default on the computation
Scheduler
.timespan | the period of time each window collects items before it should be emitted and replaced with a new window |
---|---|
unit | the unit of time that applies to the timespan argument |
count | the maximum size of each window before it should be emitted |
restart | if true, when a window reaches the capacity limit, the timer is restarted as well |
Returns a Flowable that emits non-overlapping windows of items it collects from the source Publisher where the boundary of each window is determined by the items emitted from a specified boundary-governing Publisher.
boundary
Publisher to control data
flow. The inner Publishers honor backpressure and buffer everything until the boundary signals the next element.window
does not operate by default on a particular Scheduler
.boundaryIndicator | a Publisher whose emitted items close and open windows |
---|
boundary
PublisherReturns a Flowable that emits windows of items it collects from the source Publisher. The resulting
Publisher emits connected, non-overlapping windows, each of a fixed duration specified by the
timespan
argument or a maximum size specified by the count
argument (whichever is reached
first). When the source Publisher completes or encounters an error, the resulting Publisher emits the
current window and propagates the notification from the source Publisher.
Publisher
in an unbounded manner.
The returned Publisher
doesn't support backpressure as it uses
time to control the creation of windows. The returned inner Publisher
s honor
backpressure and may hold up to count
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 window |
---|---|
unit | the unit of time which applies to the timespan argument |
scheduler | the Scheduler to use when determining the end and start of a window |
count | the maximum size of each window before it should be emitted |
Returns a Flowable that emits windows of items it collects from the source Publisher. The resulting
Publisher emits connected, non-overlapping windows, each of a fixed duration specified by the
timespan
argument. When the source Publisher completes or encounters an error, the resulting
Publisher emits the current window and propagates the notification from the source Publisher.
Publisher
in an unbounded manner.
The returned Publisher
doesn't support backpressure as it uses
time to control the creation of windows. The returned inner Publisher
s honor
backpressure and may hold up to count
elements at most.window
operates by default on the computation
Scheduler
.timespan | the period of time each window collects items before it should be emitted and replaced with a new window |
---|---|
unit | the unit of time that applies to the timespan argument |
Returns a Flowable that emits windows of items it collects from the source Publisher. The resulting
Publisher emits windows every skip
items, each containing no more than count
items. When
the source Publisher completes or encounters an error, the resulting Publisher emits the current window
and propagates the notification from the source Publisher.
count
elements.window
does not operate by default on a particular Scheduler
.count | the maximum size of each window before it should be emitted |
---|---|
skip | how many items need to be skipped before starting a new window. Note that if skip and
count are equal this is the same operation as window(long) . |
bufferSize | the capacity hint for the buffer in the inner windows |
skip
items containing at most count
items
from the source PublisherIllegalArgumentException | if either count or skip is non-positive |
---|
Merges the specified Publisher into this Publisher sequence by using the resultSelector
function only when the source Publisher (this instance) emits an item.
Scheduler
.other | the other Publisher |
---|---|
combiner | the function to call when this Publisher emits an item and the other Publisher has already emitted an item, to generate the item to be emitted by the resulting Publisher |
resultSelector
function only when the source Publisher sequence (this instance) emits an
itemCombines the value emission from this Publisher with the latest emissions from the other Publishers via a function to produce the output item.
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 Publisher 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.
Publisher
and the downstream Subscriber. The other Publisher
s are consumed in an unbounded manner.Scheduler
.source1 | the first other Publisher |
---|---|
source2 | the second other Publisher |
source3 | the third other Publisher |
combiner | the function called with an array of values from each participating Publisher |
Combines the value emission from this Publisher with the latest emissions from the other Publishers via a function to produce the output item.
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 Publisher 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.
Publisher
and the downstream Subscriber. The other Publisher
s are consumed in an unbounded manner.Scheduler
.others | the array of other sources |
---|---|
combiner | the function called with an array of values from each participating Publisher |
Combines the value emission from this Publisher with the latest emissions from the other Publishers via a function to produce the output item.
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 Publisher 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.
Publisher
and the downstream Subscriber. The other Publisher
s are consumed in an unbounded manner.Scheduler
.source1 | the first other Publisher |
---|---|
source2 | the second other Publisher |
combiner | the function called with an array of values from each participating Publisher |
Combines the value emission from this Publisher with the latest emissions from the other Publishers via a function to produce the output item.
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 Publisher 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.
Publisher
and the downstream Subscriber. The other Publisher
s are consumed in an unbounded manner.Scheduler
.source1 | the first other Publisher |
---|---|
source2 | the second other Publisher |
source3 | the third other Publisher |
source4 | the fourth other Publisher |
combiner | the function called with an array of values from each participating Publisher |
Combines the value emission from this Publisher with the latest emissions from the other Publishers via a function to produce the output item.
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 Publisher 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.
Publisher
and the downstream Subscriber. The other Publisher
s are consumed in an unbounded manner.Scheduler
.others | the iterable of other sources |
---|---|
combiner | the function called with an array of values from each participating Publisher |
Returns a Flowable that emits the results of a specified combiner function applied to combinations of six items emitted, in sequence, by six other Publishers.
zip
applies this function in strict sequence, so the first item emitted by the new Publisher
will be the result of the function applied to the first item emitted by each source Publisher, the
second item emitted by the new Publisher will be the result of the function applied to the second item
emitted by each of those Publishers, and so forth.
The resulting Publisher<R>
returned from zip
will invoke onNext
as many times as the number of onNext
invocations of the source Publisher 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 cancelling the other sources. Therefore, it
is possible those other sources will never be able to run to completion (and thus not calling
doOnComplete()
). 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 cancel B immediately. For example:
zip(range(1, 5).doOnComplete(action1), range(6, 5).doOnComplete(action2), ..., (a, b, c, d, e, f) -> a + b)
action1
will be called but action2
won't.
doOnCancel(Action)
as well or use using()
to do cleanup in case of completion
or cancellation.
interval(long, TimeUnit)
may result in MissingBackpressureException, use
one of the onBackpressureX
to handle similar, backpressure-ignoring sources.zip
does not operate by default on a particular Scheduler
.source1 | the first source Publisher |
---|---|
source2 | a second source Publisher |
source3 | a third source Publisher |
source4 | a fourth source Publisher |
source5 | a fifth source Publisher |
source6 | a sixth source Publisher |
zipper | a function that, when applied to an item emitted by each of the source Publishers, results in an item that will be emitted by the resulting Publisher |
Returns a Flowable that emits the results of a specified combiner function applied to combinations of eight items emitted, in sequence, by eight other Publishers.
zip
applies this function in strict sequence, so the first item emitted by the new Publisher
will be the result of the function applied to the first item emitted by each source Publisher, the
second item emitted by the new Publisher will be the result of the function applied to the second item
emitted by each of those Publishers, and so forth.
The resulting Publisher<R>
returned from zip
will invoke onNext
as many times as the number of onNext
invocations of the source Publisher 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 cancelling the other sources. Therefore, it
is possible those other sources will never be able to run to completion (and thus not calling
doOnComplete()
). 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 cancel B immediately. For example:
zip(range(1, 5).doOnComplete(action1), range(6, 5).doOnComplete(action2), ..., (a, b, c, d, e, f, g, h) -> a + b)
action1
will be called but action2
won't.
doOnCancel(Action)
as well or use using()
to do cleanup in case of completion
or cancellation.
interval(long, TimeUnit)
may result in MissingBackpressureException, use
one of the onBackpressureX
to handle similar, backpressure-ignoring sources.zip
does not operate by default on a particular Scheduler
.source1 | the first source Publisher |
---|---|
source2 | a second source Publisher |
source3 | a third source Publisher |
source4 | a fourth source Publisher |
source5 | a fifth source Publisher |
source6 | a sixth source Publisher |
source7 | a seventh source Publisher |
source8 | an eighth source Publisher |
zipper | a function that, when applied to an item emitted by each of the source Publishers, results in an item that will be emitted by the resulting Publisher |
Returns a Flowable that emits the results of a specified combiner function applied to combinations of nine items emitted, in sequence, by nine other Publishers.
zip
applies this function in strict sequence, so the first item emitted by the new Publisher
will be the result of the function applied to the first item emitted by each source Publisher, the
second item emitted by the new Publisher will be the result of the function applied to the second item
emitted by each of those Publishers, and so forth.
The resulting Publisher<R>
returned from zip
will invoke onNext
as many times as the number of onNext
invocations of the source Publisher 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 cancelling the other sources. Therefore, it
is possible those other sources will never be able to run to completion (and thus not calling
doOnComplete()
). 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 cancel B immediately. For example:
zip(range(1, 5).doOnComplete(action1), range(6, 5).doOnComplete(action2), ..., (a, b, c, d, e, f, g, h, i) -> a + b)
action1
will be called but action2
won't.
doOnCancel(Action)
as well or use using()
to do cleanup in case of completion
or cancellation.
interval(long, TimeUnit)
may result in MissingBackpressureException, use
one of the onBackpressureX
to handle similar, backpressure-ignoring sources.zip
does not operate by default on a particular Scheduler
.source1 | the first source Publisher |
---|---|
source2 | a second source Publisher |
source3 | a third source Publisher |
source4 | a fourth source Publisher |
source5 | a fifth source Publisher |
source6 | a sixth source Publisher |
source7 | a seventh source Publisher |
source8 | an eighth source Publisher |
source9 | a ninth source Publisher |
zipper | a function that, when applied to an item emitted by each of the source Publishers, results in an item that will be emitted by the resulting Publisher |
Returns a Flowable that emits the results of a specified combiner function applied to combinations of n items emitted, in sequence, by the n Publishers emitted by a specified Publisher.
zip
applies this function in strict sequence, so the first item emitted by the new Publisher
will be the result of the function applied to the first item emitted by each of the Publishers emitted
by the source Publisher; the second item emitted by the new Publisher will be the result of the
function applied to the second item emitted by each of those Publishers; and so forth.
The resulting Publisher<R>
returned from zip
will invoke onNext
as many times as
the number of onNext
invocations of the source Publisher 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 cancel the other sources. Therefore, it
is possible those other sources will never be able to run to completion (and thus not calling
doOnComplete()
). 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 cancel B immediately. For example:
zip(just(range(1, 5).doOnComplete(action1), range(6, 5).doOnComplete(action2)), (a) -> a)
action1
will be called but action2
won't.
doOnCancel(Action)
as well or use using()
to do cleanup in case of completion
or cancellation.
interval(long, TimeUnit)
may result in MissingBackpressureException, use
one of the onBackpressureX
to handle similar, backpressure-ignoring sources.zip
does not operate by default on a particular Scheduler
.sources | a Publisher of source Publishers |
---|---|
zipper | a function that, when applied to an item emitted by each of the Publishers emitted by
ws , results in an item that will be emitted by the resulting Publisher |
Returns a Flowable that emits the results of a specified combiner function applied to combinations of five items emitted, in sequence, by five other Publishers.
zip
applies this function in strict sequence, so the first item emitted by the new Publisher
will be the result of the function applied to the first item emitted by o1
, the first item
emitted by o2
, the first item emitted by o3
, the first item emitted by o4
, and
the first item emitted by o5
; the second item emitted by the new Publisher will be the result of
the function applied to the second item emitted by each of those Publishers; and so forth.
The resulting Publisher<R>
returned from zip
will invoke onNext
as many times as the number of onNext
invocations of the source Publisher 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 cancelling the other sources. Therefore, it
is possible those other sources will never be able to run to completion (and thus not calling
doOnComplete()
). 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 cancel B immediately. For example:
zip(range(1, 5).doOnComplete(action1), range(6, 5).doOnComplete(action2), ..., (a, b, c, d, e) -> a + b)
action1
will be called but action2
won't.
doOnCancel(Action)
as well or use using()
to do cleanup in case of completion
or cancellation.
interval(long, TimeUnit)
may result in MissingBackpressureException, use
one of the onBackpressureX
to handle similar, backpressure-ignoring sources.zip
does not operate by default on a particular Scheduler
.source1 | the first source Publisher |
---|---|
source2 | a second source Publisher |
source3 | a third source Publisher |
source4 | a fourth source Publisher |
source5 | a fifth source Publisher |
zipper | a function that, when applied to an item emitted by each of the source Publishers, results in an item that will be emitted by the resulting Publisher |
Returns a Flowable that emits the results of a specified combiner function applied to combinations of seven items emitted, in sequence, by seven other Publishers.
zip
applies this function in strict sequence, so the first item emitted by the new Publisher
will be the result of the function applied to the first item emitted by each source Publisher, the
second item emitted by the new Publisher will be the result of the function applied to the second item
emitted by each of those Publishers, and so forth.
The resulting Publisher<R>
returned from zip
will invoke onNext
as many times as the number of onNext
invocations of the source Publisher 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 cancelling the other sources. Therefore, it
is possible those other sources will never be able to run to completion (and thus not calling
doOnComplete()
). 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 cancel B immediately. For example:
zip(range(1, 5).doOnComplete(action1), range(6, 5).doOnComplete(action2), ..., (a, b, c, d, e, f, g) -> a + b)
action1
will be called but action2
won't.
doOnCancel(Action)
as well or use using()
to do cleanup in case of completion
or cancellation.
interval(long, TimeUnit)
may result in MissingBackpressureException, use
one of the onBackpressureX
to handle similar, backpressure-ignoring sources.zip
does not operate by default on a particular Scheduler
.source1 | the first source Publisher |
---|---|
source2 | a second source Publisher |
source3 | a third source Publisher |
source4 | a fourth source Publisher |
source5 | a fifth source Publisher |
source6 | a sixth source Publisher |
source7 | a seventh source Publisher |
zipper | a function that, when applied to an item emitted by each of the source Publishers, results in an item that will be emitted by the resulting Publisher |
Returns a Flowable that emits the results of a specified combiner function applied to combinations of three items emitted, in sequence, by three other Publishers.
zip
applies this function in strict sequence, so the first item emitted by the new Publisher
will be the result of the function applied to the first item emitted by o1
, the first item
emitted by o2
, and the first item emitted by o3
; the second item emitted by the new
Publisher will be the result of the function applied to the second item emitted by o1
, the
second item emitted by o2
, and the second item emitted by o3
; and so forth.
The resulting Publisher<R>
returned from zip
will invoke onNext
as many times as the number of onNext
invocations of the source Publisher 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 cancelling the other sources. Therefore, it
is possible those other sources will never be able to run to completion (and thus not calling
doOnComplete()
). 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 cancel B immediately. For example:
zip(range(1, 5).doOnComplete(action1), range(6, 5).doOnComplete(action2), ..., (a, b, c) -> a + b)
action1
will be called but action2
won't.
doOnCancel(Action)
as well or use using()
to do cleanup in case of completion
or cancellation.
interval(long, TimeUnit)
may result in MissingBackpressureException, use
one of the onBackpressureX
to handle similar, backpressure-ignoring sources.zip
does not operate by default on a particular Scheduler
.source1 | the first source Publisher |
---|---|
source2 | a second source Publisher |
source3 | a third source Publisher |
zipper | a function that, when applied to an item emitted by each of the source Publishers, results in an item that will be emitted by the resulting Publisher |
Returns a Flowable that emits the results of a specified combiner function applied to combinations of four items emitted, in sequence, by four other Publishers.
zip
applies this function in strict sequence, so the first item emitted by the new Publisher
will be the result of the function applied to the first item emitted by o1
, the first item
emitted by o2
, the first item emitted by o3
, and the first item emitted by 04
;
the second item emitted by the new Publisher will be the result of the function applied to the second
item emitted by each of those Publishers; and so forth.
The resulting Publisher<R>
returned from zip
will invoke onNext
as many times as the number of onNext
invocations of the source Publisher 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 cancelling the other sources. Therefore, it
is possible those other sources will never be able to run to completion (and thus not calling
doOnComplete()
). 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 cancel B immediately. For example:
zip(range(1, 5).doOnComplete(action1), range(6, 5).doOnComplete(action2), ..., (a, b, c, d) -> a + b)
action1
will be called but action2
won't.
doOnCancel(Action)
as well or use using()
to do cleanup in case of completion
or cancellation.
interval(long, TimeUnit)
may result in MissingBackpressureException, use
one of the onBackpressureX
to handle similar, backpressure-ignoring sources.zip
does not operate by default on a particular Scheduler
.source1 | the first source Publisher |
---|---|
source2 | a second source Publisher |
source3 | a third source Publisher |
source4 | a fourth source Publisher |
zipper | a function that, when applied to an item emitted by each of the source Publishers, results in an item that will be emitted by the resulting Publisher |
Returns a Flowable that emits the results of a specified combiner function applied to combinations of two items emitted, in sequence, by two other Publishers.
zip
applies this function in strict sequence, so the first item emitted by the new Publisher
will be the result of the function applied to the first item emitted by o1
and the first item
emitted by o2
; the second item emitted by the new Publisher will be the result of the function
applied to the second item emitted by o1
and the second item emitted by o2
; and so forth.
The resulting Publisher<R>
returned from zip
will invoke onNext
as many times as the number of onNext
invocations of the source Publisher 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 cancelling the other sources. Therefore, it
is possible those other sources will never be able to run to completion (and thus not calling
doOnComplete()
). 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 cancel B immediately. For example:
zip(range(1, 5).doOnComplete(action1), range(6, 5).doOnComplete(action2), (a, b) -> a + b)
action1
will be called but action2
won't.
doOnCancel(Action)
as well or use using()
to do cleanup in case of completion
or cancellation.
interval(long, TimeUnit)
may result in MissingBackpressureException, use
one of the onBackpressureX
to handle similar, backpressure-ignoring sources.zip
does not operate by default on a particular Scheduler
.source1 | the first source Publisher |
---|---|
source2 | a second source Publisher |
zipper | a function that, when applied to an item emitted by each of the source Publishers, results in an item that will be emitted by the resulting Publisher |
delayError | delay errors from any of the source Publishers till the other terminates |
bufferSize | the number of elements to prefetch from each source Publisher |
Returns a Flowable that emits the results of a specified combiner function applied to combinations of two items emitted, in sequence, by two other Publishers.
zip
applies this function in strict sequence, so the first item emitted by the new Publisher
will be the result of the function applied to the first item emitted by o1
and the first item
emitted by o2
; the second item emitted by the new Publisher will be the result of the function
applied to the second item emitted by o1
and the second item emitted by o2
; and so forth.
The resulting Publisher<R>
returned from zip
will invoke onNext
as many times as the number of onNext
invocations of the source Publisher 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 cancelling the other sources. Therefore, it
is possible those other sources will never be able to run to completion (and thus not calling
doOnComplete()
). 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 cancel B immediately. For example:
zip(range(1, 5).doOnComplete(action1), range(6, 5).doOnComplete(action2), (a, b) -> a + b)
action1
will be called but action2
won't.
doOnCancel(Action)
as well or use using()
to do cleanup in case of completion
or cancellation.
interval(long, TimeUnit)
may result in MissingBackpressureException, use
one of the onBackpressureX
to handle similar, backpressure-ignoring sources.zip
does not operate by default on a particular Scheduler
.source1 | the first source Publisher |
---|---|
source2 | a second source Publisher |
zipper | a function that, when applied to an item emitted by each of the source Publishers, results in an item that will be emitted by the resulting Publisher |
delayError | delay errors from any of the source Publishers till the other terminates |
Returns a Flowable that emits the results of a specified combiner function applied to combinations of items emitted, in sequence, by an Iterable of other Publishers.
zip
applies this function in strict sequence, so the first item emitted by the new Publisher
will be the result of the function applied to the first item emitted by each of the source Publishers;
the second item emitted by the new Publisher will be the result of the function applied to the second
item emitted by each of those Publishers; and so forth.
The resulting Publisher<R>
returned from zip
will invoke onNext
as many times as
the number of onNext
invocations of the source Publisher 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 cancelling the other sources. Therefore, it
is possible those other sources will never be able to run to completion (and thus not calling
doOnComplete()
). 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 cancel B immediately. For example:
zip(Arrays.asList(range(1, 5).doOnComplete(action1), range(6, 5).doOnComplete(action2)), (a) -> a)
action1
will be called but action2
won't.
doOnCancel(Action)
as well or use using()
to do cleanup in case of completion
or cancellation.
interval(long, TimeUnit)
may result in MissingBackpressureException, use
one of the onBackpressureX
to handle similar, backpressure-ignoring sources.zip
does not operate by default on a particular Scheduler
.sources | an Iterable of source Publishers |
---|---|
zipper | a function that, when applied to an item emitted by each of the source Publishers, results in an item that will be emitted by the resulting Publisher |
Returns a Flowable that emits the results of a specified combiner function applied to combinations of two items emitted, in sequence, by two other Publishers.
zip
applies this function in strict sequence, so the first item emitted by the new Publisher
will be the result of the function applied to the first item emitted by o1
and the first item
emitted by o2
; the second item emitted by the new Publisher will be the result of the function
applied to the second item emitted by o1
and the second item emitted by o2
; and so forth.
The resulting Publisher<R>
returned from zip
will invoke onNext
as many times as the number of onNext
invocations of the source Publisher 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 cancelling the other sources. Therefore, it
is possible those other sources will never be able to run to completion (and thus not calling
doOnComplete()
). 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 cancel B immediately. For example:
zip(range(1, 5).doOnComplete(action1), range(6, 5).doOnComplete(action2), (a, b) -> a + b)
action1
will be called but action2
won't.
doOnCancel(Action)
as well or use using()
to do cleanup in case of completion
or cancellation.
interval(long, TimeUnit)
may result in MissingBackpressureException, use
one of the onBackpressureX
to handle similar, backpressure-ignoring sources.zip
does not operate by default on a particular Scheduler
.source1 | the first source Publisher |
---|---|
source2 | a second source Publisher |
zipper | a function that, when applied to an item emitted by each of the source Publishers, results in an item that will be emitted by the resulting Publisher |
Returns a Flowable that emits the results of a specified combiner function applied to combinations of items emitted, in sequence, by an array of other Publishers.
zip
applies this function in strict sequence, so the first item emitted by the new Publisher
will be the result of the function applied to the first item emitted by each of the source Publishers;
the second item emitted by the new Publisher will be the result of the function applied to the second
item emitted by each of those Publishers; and so forth.
The resulting Publisher<R>
returned from zip
will invoke onNext
as many times as
the number of onNext
invocations of the source Publisher 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 cancelling the other sources. Therefore, it
is possible those other sources will never be able to run to completion (and thus not calling
doOnComplete()
). 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 cancel B immediately. For example:
zip(new Publisher[]{range(1, 5).doOnComplete(action1), range(6, 5).doOnComplete(action2)}, (a) ->
a)
action1
will be called but action2
won't.
doOnCancel(Action)
as well or use using()
to do cleanup in case of completion
or cancellation.
interval(long, TimeUnit)
may result in MissingBackpressureException, use
one of the onBackpressureX
to handle similar, backpressure-ignoring sources.zipArray
does not operate by default on a particular Scheduler
.zipper | a function that, when applied to an item emitted by each of the source Publishers, results in an item that will be emitted by the resulting Publisher |
---|---|
delayError | delay errors signalled by any of the source Publisher until all Publishers terminate |
bufferSize | the number of elements to prefetch from each source Publisher |
sources | an array of source Publishers |
Returns a Flowable that emits the results of a specified combiner function applied to combinations of items emitted, in sequence, by an Iterable of other Publishers.
zip
applies this function in strict sequence, so the first item emitted by the new Publisher
will be the result of the function applied to the first item emitted by each of the source Publishers;
the second item emitted by the new Publisher will be the result of the function applied to the second
item emitted by each of those Publishers; and so forth.
The resulting Publisher<R>
returned from zip
will invoke onNext
as many times as
the number of onNext
invocations of the source Publisher 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 cancelling the other sources. Therefore, it
is possible those other sources will never be able to run to completion (and thus not calling
doOnComplete()
). 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 cancel B immediately. For example:
zip(Arrays.asList(range(1, 5).doOnComplete(action1), range(6, 5).doOnComplete(action2)), (a) -> a)
action1
will be called but action2
won't.
doOnCancel(Action)
as well or use using()
to do cleanup in case of completion
or cancellation.
interval(long, TimeUnit)
may result in MissingBackpressureException, use
one of the onBackpressureX
to handle similar, backpressure-ignoring sources.zipIterable
does not operate by default on a particular Scheduler
.sources | an Iterable of source Publishers |
---|---|
zipper | a function that, when applied to an item emitted by each of the source Publishers, results in an item that will be emitted by the resulting Publisher |
delayError | delay errors signalled by any of the source Publisher until all Publishers terminate |
bufferSize | the number of elements to prefetch from each source Publisher |
Returns a Flowable that emits items that are the result of applying a specified function to pairs of values, one each from the source Publisher and another specified Publisher.
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 cancelling the other sources. Therefore, it
is possible those other sources will never be able to run to completion (and thus not calling
doOnComplete()
). 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 cancel B immediately. For example:
range(1, 5).doOnComplete(action1).zipWith(range(6, 5).doOnComplete(action2), (a, b) -> a + b)
action1
will be called but action2
won't.
doOnCancel(Action)
as well or use using()
to do cleanup in case of completion
or cancellation.
interval(long, TimeUnit)
may result in MissingBackpressureException, use
one of the onBackpressureX
to handle similar, backpressure-ignoring sources.zipWith
does not operate by default on a particular Scheduler
.other | the other Publisher |
---|---|
zipper | a function that combines the pairs of items from the two Publishers to generate the items to be emitted by the resulting Publisher |
delayError | if true, errors from the current Flowable or the other Publisher is delayed until both terminate |
other
Publisher
and emits the results of zipFunction
applied to these pairsReturns a Flowable that emits items that are the result of applying a specified function to pairs of values, one each from the source Publisher and another specified Publisher.
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 cancelling the other sources. Therefore, it
is possible those other sources will never be able to run to completion (and thus not calling
doOnComplete()
). 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 cancel B immediately. For example:
range(1, 5).doOnComplete(action1).zipWith(range(6, 5).doOnComplete(action2), (a, b) -> a + b)
action1
will be called but action2
won't.
doOnCancel(Action)
as well or use using()
to do cleanup in case of completion
or cancellation.
interval(long, TimeUnit)
may result in MissingBackpressureException, use
one of the onBackpressureX
to handle similar, backpressure-ignoring sources.zipWith
does not operate by default on a particular Scheduler
.other | the other Publisher |
---|---|
zipper | a function that combines the pairs of items from the two Publishers to generate the items to be emitted by the resulting Publisher |
other
Publisher
and emits the results of zipFunction
applied to these pairsReturns a Flowable that emits items that are the result of applying a specified function to pairs of values, one each from the source Publisher and a specified Iterable sequence.
Note that the other
Iterable is evaluated as items are observed from the source Publisher; 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 the onBackpressureX
to handle similar, backpressure-ignoring sources.zipWith
does not operate by default on a particular Scheduler
.other | the Iterable sequence |
---|---|
zipper | a function that combines the pairs of items from the Publisher and the Iterable to generate the items to be emitted by the resulting Publisher |
other
Iterable
sequence and emits the results of zipFunction
applied to these pairsReturns a Flowable that emits items that are the result of applying a specified function to pairs of values, one each from the source Publisher and another specified Publisher.
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 cancelling the other sources. Therefore, it
is possible those other sources will never be able to run to completion (and thus not calling
doOnComplete()
). 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 cancel B immediately. For example:
range(1, 5).doOnComplete(action1).zipWith(range(6, 5).doOnComplete(action2), (a, b) -> a + b)
action1
will be called but action2
won't.
doOnCancel(Action)
as well or use using()
to do cleanup in case of completion
or cancellation.
interval(long, TimeUnit)
may result in MissingBackpressureException, use
one of the onBackpressureX
to handle similar, backpressure-ignoring sources.zipWith
does not operate by default on a particular Scheduler
.other | the other Publisher |
---|---|
zipper | a function that combines the pairs of items from the two Publishers to generate the items to be emitted by the resulting Publisher |
delayError | if true, errors from the current Flowable or the other Publisher is delayed until both terminate |
bufferSize | the capacity hint for the buffer in the inner windows |
other
Publisher
and emits the results of zipFunction
applied to these pairsOperator implementations (both source and intermediate) should implement this method that performs the necessary business logic.
There is no need to call any of the plugin hooks on the current Flowable instance or the Subscriber.
s | the incoming Subscriber, never null |
---|