src/main/java/io/reactivex/Observable.java
@SuppressWarnings({ "rawtypes", "unchecked" })
    @CheckReturnValue
    @SchedulerSupport(SchedulerSupport.NONE)
    public static <T> Observable<T> concatArrayEagerDelayError(int maxConcurrency, int prefetch, ObservableSource<? extends T>... sources) {
        return fromArray(sources).concatMapEagerDelayError((Function)Functions.identity(), maxConcurrency, prefetch, true);
    }
@SuppressWarnings({ "rawtypes", "unchecked" })
    @CheckReturnValue
    @SchedulerSupport(SchedulerSupport.NONE)
    public static <T> Observable<T> concatArrayEagerDelayError(int maxConcurrency, int prefetch, ObservableSource<? extends T>... sources) {
        return fromArray(sources).concatMapEagerDelayError((Function)Functions.identity(), maxConcurrency, prefetch, true);
    }
Concatenates an array of {@link ObservableSource}s eagerly into a single stream of values
and delaying any errors until all sources terminate.
<p>
<img width="640" height="460" src="https://raw.github.com/wiki/ReactiveX/RxJava/images/rx-operators/concatArrayEagerDelayError.nn.png" alt="">
<p>
Eager concatenation means that once a subscriber subscribes, this operator subscribes to all of the
source {@code ObservableSource}s. The operator buffers the values emitted by these {@code ObservableSource}s
and then drains them in order, each one after the previous one completes.
<dl>
<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 {@code ObservableSource}s that need to be eagerly concatenated
@param maxConcurrency the maximum number of concurrent subscriptions at a time, Integer.MAX_VALUE
is interpreted as indication to subscribe to all sources at once
@param prefetch the number of elements to prefetch from each {@code ObservableSource} source
@return the new Observable instance with the specified concatenation behavior
@since 2.2.1 - experimental