code: @CheckReturnValue
      @BackpressureSupport(BackpressureKind.FULL)
      @SchedulerSupport(SchedulerSupport.NONE)
      public final <R> Flowable<R> concatMapMaybe(Function<? super T, ? extends MaybeSource<? extends R>> mapper, int prefetch) {
          ObjectHelper.requireNonNull(mapper, "mapper is null");
          ObjectHelper.verifyPositive(prefetch, "prefetch");
          return RxJavaPlugins.onAssembly(new FlowableConcatMapMaybe<T, R>(this, mapper, ErrorMode.IMMEDIATE, prefetch));
      }
docs: 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
  @param prefetch The number of upstream items to prefetch so that fresh items are
  ready to be mapped when a previous {@code MaybeSource} terminates.
  The operator replenishes after half of the prefetch amount has been consumed
  and turned into {@code MaybeSource}s.
  @return a new Flowable instance
  @see #concatMapMaybe(Function)
  @see #concatMapMaybeDelayError(Function, boolean, int)
  @since 2.2