src/main/java/io/reactivex/Flowable.java
@CheckReturnValue
    @NonNull
    @BackpressureSupport(BackpressureKind.FULL)
    @SchedulerSupport(SchedulerSupport.NONE)
    @SuppressWarnings({ "rawtypes", "unchecked" })
    public static <T> Flowable<T> concatArrayEager(int maxConcurrency, int prefetch, Publisher<? extends T>... sources) {
        ObjectHelper.requireNonNull(sources, "sources is null");
        ObjectHelper.verifyPositive(maxConcurrency, "maxConcurrency");
        ObjectHelper.verifyPositive(prefetch, "prefetch");
        return RxJavaPlugins.onAssembly(new FlowableConcatMapEager(new FlowableFromArray(sources), Functions.identity(), maxConcurrency, prefetch, ErrorMode.IMMEDIATE));
    }
@CheckReturnValue
    @NonNull
    @BackpressureSupport(BackpressureKind.FULL)
    @SchedulerSupport(SchedulerSupport.NONE)
    @SuppressWarnings({ "rawtypes", "unchecked" })
    public static <T> Flowable<T> concatArrayEager(int maxConcurrency, int prefetch, Publisher<? extends T>... sources) {
        ObjectHelper.requireNonNull(sources, "sources is null");
        ObjectHelper.verifyPositive(maxConcurrency, "maxConcurrency");
        ObjectHelper.verifyPositive(prefetch, "prefetch");
        return RxJavaPlugins.onAssembly(new FlowableConcatMapEager(new FlowableFromArray(sources), Functions.identity(), maxConcurrency, prefetch, ErrorMode.IMMEDIATE));
    }
Concatenates an array of Publishers eagerly into a single stream of values.
<p>
<img width="640" height="406" src="https://raw.github.com/wiki/ReactiveX/RxJava/images/rx-operators/Flowable.concatArrayEager.nn.png" alt="">
<p>
Eager concatenation means that once a subscriber subscribes, this operator subscribes to all of the
source Publishers. The operator buffers the values emitted by these Publishers and then drains them
in order, each one after the previous one completes.
<dl>
<dt><b>Backpressure:</b></dt>
<dd>The operator honors backpressure from downstream. The {@code Publisher}
sources are expected to honor backpressure as well.
If any of the source {@code Publisher}s violate this, the operator will signal a
{@code MissingBackpressureException}.</dd>
<dt><b>Scheduler:</b></dt>
<dd>This method does not operate by default on a particular {@link Scheduler}.</dd>
</dl>
@param <T> the value type
@param sources an array of Publishers that need to be eagerly concatenated
@param maxConcurrency the maximum number of concurrent subscriptions at a time, Integer.MAX_VALUE
is interpreted as an indication to subscribe to all sources at once
@param prefetch the number of elements to prefetch from each Publisher source
@return the new Publisher instance with the specified concatenation behavior
@since 2.0