AI-generated Key Takeaways
-
Flow.Subscriptionmanages the flow of messages between aFlow.Publisherand aFlow.Subscriber, enabling controlled message delivery and cancellation. -
Subscribers use
request(long n)to signal their demand fornadditional messages, whilecancel()initiates the termination of message delivery. -
Although
cancel()aims to halt message delivery, it's best-effort and subscribers might still receive some messages afterward, and termination signals likeonCompleteoronErrorare not guaranteed. -
Requesting a non-positive number of items through
requestwill result in anonErrorsignal with anIllegalArgumentException.
Message control linking a Flow.Publisher and Flow.Subscriber. Subscribers receive items only when requested,
and may cancel at any time. The methods in this interface are
intended to be invoked only by their Subscribers; usages in
other contexts have undefined effects.
Public Method Summary
| abstract void |
cancel()
Causes the Subscriber to (eventually) stop receiving
messages.
|
| abstract void |
request(long n)
Adds the given number
n of items to the current
unfulfilled demand for this subscription. |
Public Methods
public abstract void cancel ()
Causes the Subscriber to (eventually) stop receiving
messages. Implementation is best-effort -- additional
messages may be received after invoking this method.
A cancelled subscription need not ever receive an
onComplete or onError signal.
public abstract void request (long n)
Adds the given number n of items to the current
unfulfilled demand for this subscription. If n is
less than or equal to zero, the Subscriber will receive an
onError signal with an IllegalArgumentException argument. Otherwise, the
Subscriber will receive up to n additional onNext invocations (or fewer if terminated).
Parameters
| n | the increment of demand; a value of Long.MAX_VALUE may be considered as effectively unbounded
|
|---|