java.lang.Object | |
↳ | io.reactivex.subscribers.DefaultSubscriber<T> |
Abstract base implementation of a org.reactivestreams.Subscriber Subscriber with
support for requesting via request(long)
, cancelling via
via cancel()
(both synchronously) and calls onStart()
when the subscription happens.
All pre-implemented final methods are thread-safe.
The default onStart()
requests Long.MAX_VALUE by default. Override
the method to request a custom positive amount.
Note that calling request(long)
from onStart()
may trigger
an immediate, asynchronous emission of data to onNext(Object)
. Make sure
all initialization happens before the call to request()
in onStart()
.
Calling request(long)
inside onNext(Object)
can happen at any time
because by design, onNext
calls from upstream are non-reentrant and non-overlapping.
Use the protected cancel()
to cancel the sequence from within an
onNext
implementation.
Like all other consumers, DefaultSubscriber
can be subscribed only once.
Any subsequent attempt to subscribe it to a new source will yield an
IllegalStateException
with message "It is not allowed to subscribe with a(n) <class name> multiple times."
.
Implementation of onStart()
, onNext(Object)
, onError(Throwable)
and onComplete()
are not allowed to throw any unchecked exceptions.
If for some reason this can't be avoided, use safeSubscribe(org.reactivestreams.Subscriber)
instead of the standard subscribe()
method.
Public Constructors | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
DefaultSubscriber() |
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
final void |
onSubscribe(Subscription s)
Implementors of this method should make sure everything that needs
to be visible in
onNext(Object) is established before
calling request(long) . |
Protected Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
final void |
cancel()
Cancels the upstream's Subscription.
| ||||||||||
void |
onStart()
Called once the subscription has been set on this observer; override this
to perform initialization or issue an initial request.
| ||||||||||
final void |
request(long n)
Requests from the upstream Subscription.
|
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
![]() | |||||||||||
![]() | |||||||||||
![]() |
Implementors of this method should make sure everything that needs
to be visible in onNext(Object)
is established before
calling request(long)
. In practice this means
no initialization should happen after the request()
call and
additional behavior is thread safe in respect to onNext
.
Cancels the upstream's Subscription.
Called once the subscription has been set on this observer; override this to perform initialization or issue an initial request.
The default implementation requests MAX_VALUE
.
Requests from the upstream Subscription.
n | the request amount, positive |
---|