src/main/java/io/reactivex/Flowable.java
@CheckReturnValue
    @BackpressureSupport(BackpressureKind.NONE)
    @SchedulerSupport(SchedulerSupport.NONE)
    public final Disposable forEachWhile(Predicate<? super T> onNext) {
        return forEachWhile(onNext, Functions.ON_ERROR_MISSING, Functions.EMPTY_ACTION);
    }
@CheckReturnValue
    @BackpressureSupport(BackpressureKind.NONE)
    @SchedulerSupport(SchedulerSupport.NONE)
    public final Disposable forEachWhile(Predicate<? super T> onNext) {
        return forEachWhile(onNext, Functions.ON_ERROR_MISSING, Functions.EMPTY_ACTION);
    }
Subscribes to the {@link Publisher} and receives notifications for each element until the
onNext Predicate returns false.
<p>
If the Flowable emits an error, it is wrapped into an
{@link io.reactivex.exceptions.OnErrorNotImplementedException OnErrorNotImplementedException}
and routed to the RxJavaPlugins.onError handler.
<dl>
<dt><b>Backpressure:</b></dt>
<dd>The operator consumes the source {@code Publisher} in an unbounded manner (i.e., no
backpressure is applied to it).</dd>
<dt><b>Scheduler:</b></dt>
<dd>{@code forEachWhile} does not operate by default on a particular {@link Scheduler}.</dd>
</dl>

@param onNext
{@link Predicate} to execute for each item.
@return
a {@link Disposable} that allows canceling an asynchronous sequence
@throws NullPointerException
if {@code onNext} is null
@see <a href="http://reactivex.io/documentation/operators/subscribe.html">ReactiveX operators documentation: Subscribe</a>