src/main/java/io/reactivex/Flowable.java
@CheckReturnValue
    @BackpressureSupport(BackpressureKind.FULL)
    @SchedulerSupport(SchedulerSupport.NONE)
    public final <R> Flowable<R> concatMapMaybe(Function<? super T, ? extends MaybeSource<? extends R>> mapper) {
        return concatMapMaybe(mapper, 2);
    }
@CheckReturnValue
    @BackpressureSupport(BackpressureKind.FULL)
    @SchedulerSupport(SchedulerSupport.NONE)
    public final <R> Flowable<R> concatMapMaybe(Function<? super T, ? extends MaybeSource<? extends R>> mapper) {
        return concatMapMaybe(mapper, 2);
    }
Maps the upstream items into {@link MaybeSource}s and subscribes to them one after the
other succeeds or completes, emits their success value if available or terminates immediately if
either this {@code Flowable} or the current inner {@code MaybeSource} fail.
<p>
<img width="640" height="305" src="https://raw.github.com/wiki/ReactiveX/RxJava/images/rx-operators/concatMap.png" alt="">
<dl>
<dt><b>Backpressure:</b></dt>
<dd>The operator expects the upstream to support backpressure and honors
the backpressure from downstream. If this {@code Flowable} violates the rule, the operator will
signal a {@code MissingBackpressureException}.</dd>
<dt><b>Scheduler:</b></dt>
<dd>{@code concatMapMaybe} does not operate by default on a particular {@link Scheduler}.</dd>
</dl>
<p>History: 2.1.11 - experimental
@param <R> the result type of the inner {@code MaybeSource}s
@param mapper the function called with the upstream item and should return
a {@code MaybeSource} to become the next source to
be subscribed to
@return a new Flowable instance
@see #concatMapMaybeDelayError(Function)
@see #concatMapMaybe(Function, int)
@since 2.2