src/main/java/io/reactivex/Observable.java
@SuppressWarnings({ "unchecked", "rawtypes" })
    @CheckReturnValue
    @SchedulerSupport(SchedulerSupport.NONE)
    public static <T> Observable<T> concatEager(ObservableSource<? extends ObservableSource<? extends T>> sources, int maxConcurrency, int prefetch) {
        return wrap(sources).concatMapEager((Function)Functions.identity(), maxConcurrency, prefetch);
    }
@SuppressWarnings({ "unchecked", "rawtypes" })
    @CheckReturnValue
    @SchedulerSupport(SchedulerSupport.NONE)
    public static <T> Observable<T> concatEager(ObservableSource<? extends ObservableSource<? extends T>> sources, int maxConcurrency, int prefetch) {
        return wrap(sources).concatMapEager((Function)Functions.identity(), maxConcurrency, prefetch);
    }
Concatenates an ObservableSource sequence of ObservableSources eagerly into a single stream of values.
<p>
Eager concatenation means that once a subscriber subscribes, this operator subscribes to all of the
emitted source ObservableSources as they are observed. The operator buffers the values emitted by these
ObservableSources and then drains them in order, each one after the previous one completes.
<p>
<img width="640" height="380" src="https://raw.github.com/wiki/ReactiveX/RxJava/images/rx-operators/concatEager.png" alt="">
<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 a sequence of ObservableSources that need to be eagerly concatenated
@param maxConcurrency the maximum number of concurrently running inner ObservableSources; Integer.MAX_VALUE
is interpreted as all inner ObservableSources can be active at the same time
@param prefetch the number of elements to prefetch from each inner ObservableSource source
@return the new ObservableSource instance with the specified concatenation behavior
@since 2.0