src/main/java/io/reactivex/Flowable.java
@CheckReturnValue
    @BackpressureSupport(BackpressureKind.SPECIAL)
    @SchedulerSupport(SchedulerSupport.NONE)
    public final <E extends Subscriber<? super T>> E subscribeWith(E subscriber) {
        subscribe(subscriber);
        return subscriber;
    }
@CheckReturnValue
    @BackpressureSupport(BackpressureKind.SPECIAL)
    @SchedulerSupport(SchedulerSupport.NONE)
    public final <E extends Subscriber<? super T>> E subscribeWith(E subscriber) {
        subscribe(subscriber);
        return subscriber;
    }
Subscribes a given Subscriber (subclass) to this Flowable and returns the given
Subscriber as is.
<p>Usage example:
<pre><code>
Flowable&lt;Integer&gt; source = Flowable.range(1, 10);
CompositeDisposable composite = new CompositeDisposable();

ResourceSubscriber&lt;Integer&gt; rs = new ResourceSubscriber&lt;&gt;() {
// ...
};

composite.add(source.subscribeWith(rs));
</code></pre>

<dl>
<dt><b>Backpressure:</b></dt>
<dd>The backpressure behavior/expectation is determined by the supplied {@code Subscriber}.</dd>
<dt><b>Scheduler:</b></dt>
<dd>{@code subscribeWith} does not operate by default on a particular {@link Scheduler}.</dd>
</dl>
@param <E> the type of the Subscriber to use and return
@param subscriber the Subscriber (subclass) to use and return, not null
@return the input {@code subscriber}
@throws NullPointerException if {@code subscriber} is null
@since 2.0