Which Operator to Use? - Instance Operators

Use this page to find the instance operator implemented by the Observable type that fits your needs:

Instance methods
Using an existing sequence I want to change each value map/select
I want to pull a property off each value pluck
I want to be notified of values without affecting them do/tap
doOnNext/tapOnNext
doOnError/tapOnError
doOnCompleted/tapOnCompleted
I want to include values based on custom logic filter/where
from the start of the sequence take
based on custom logic takeWhile
from the end of the sequence takeLast
until another sequence emits a value or completes takeUntil
I want to ignore values altogether ignoreElements
from the start of the sequence skip
based on custom logic skipWhile
from the end of the sequence skipLast
until another sequence emits a value skipUntil
that have the same value as the previous distinctUntilChanged
that occur too frequently throttle
I want to compute the sum of its values sum
the average average
using custom logic and only output the final value aggregate
reduce
and output the values as they are calculated scan
I want to wrap its messages with metadata that describes each message materialize
that includes the time past since the last value timeInterval
that includes a timestamp timestamp
after a period of inactivity I want to throw an error timeout
I want to switch to another sequence timeout
I want ensure there is only one value and throw an error if there are more or less than one value single
and use the default value if there are no values singleOrDefault
I want to only take the first value and throw an error if there are no values first
and use the default value if there are no values firstOrDefault
within a time period sample
I want to only take the last value and error if there are no values last
and use the default value if there are no values lastOrDefault
I want to know how many values it contains count
I want to know if it includes a value contains
I want to know if a condition is satisfied by any of its values any/some
by all of its values all/every
I want to delay messages by a specific amount of time delay
based on custom logic delayWithSelector
I want to group the values until the sequence completes toArray
toMap
toSet
using custom logic as arrays buffer
as sequences window
in batches of a particular size as arrays bufferWithCount
as sequences windowWithCount
based on time as arrays bufferWithTime
as sequences windowWithTime
based on time or count, whichever happens first as arrays bufferWithTimeOrCount
as sequences windowWithTimeOrCount
based on a key until the sequence completes groupBy
and control the lifetime of each group groupByUntil
I want to start a new sequence for each value and emit the values from all sequences in parallel flatMap/selectMany
and emit the values from each sequence in order concatMap/selectConcat
and cancel the previous sequence when a new value arrives flatMapLatest/selectSwitch
and recursively start a new sequence for each new value expand
and emit values from all sequences depending for onNext, onError, and onCompleted in parallel flatMapObserver/selectManyObserver
and emit values from all sequences depending for onNext, onError, and onCompleted in order concatMapObserver/selectConcatObserver
I want to combine it with another And be notified when both have completed forkJoin
I want to perform complex operations without breaking the fluent calls let
I want to share a subscription between multiple subscribers using a specific subject implementation multicast
publish
share
and supply the last value to future subscribers publishLast
shareLast
and replay a default or the latest value to future subscribers publishValue
shareValue
and replay n number of values to future subscribers replay
shareReplay
when an error occurs I want to re-subscribe retry
I want to start a new sequence catch
that depends on the error catch
when it completes I want to re-subscribe repeat
I want to start a new sequence concat
when it completes or errors I want to start a new sequence onErrorResumeNext
when it completes, errors or unsubscribes I want to execute a function finally
I want to change the scheduler that routes calls to subscribe subscribeOn
messages observeOn
Using two sequences I want to decide which to receive values from based on which one has values first amb
I want to determine if their values are equal sequenceEqual
I want to combine their values only when the first sequence emits, using the latest value from each withLatestFrom
in order reusing the latest value when unchanged combineLatest
using each value only once zip
that share overlapping “lifetime” that I choose and be notified for each combination join
and be given a sequence of “rights” for each “left” groupJoin
I want to include values from both merge

See Also

Reference

Concepts