This is the simplest way of subscribing to a stream, as this method ignores all signals. Usually, other variants should be preferred. However, sometimes it may be useful to trigger stream processing that has side effects.
The dataConsumer is invoked on each value (onNext signal). It does not handle onError and onComplete signals.
The same as in option (2); however, this allows handling of the onError signal. The onComplete signal is ignored.
The same as in option (3); however, this also allows handling of the onComplete signal.
Allows all elements in the Reactive Stream to be consumed, including handle errors and a completion signal. Importantly, this override allows the subscription to be controlled by requesting an adequate amount of data of course, we may still request Long.MAX_VALUE).
The most generic way of subscribing to the sequence. Here, we may provide our Subscriber implementation with the desired behavior. Even though this option is very versatile, it is rarely required.