src/main/java/io/reactivex/Completable.java
@CheckReturnValue
    @NonNull
    @SchedulerSupport(SchedulerSupport.NONE)
    public static Completable concat(Iterable<? extends CompletableSource> sources) {
        ObjectHelper.requireNonNull(sources, "sources is null");

        return RxJavaPlugins.onAssembly(new CompletableConcatIterable(sources));
    }
@CheckReturnValue
    @NonNull
    @SchedulerSupport(SchedulerSupport.NONE)
    public static Completable concat(Iterable<? extends CompletableSource> sources) {
        ObjectHelper.requireNonNull(sources, "sources is null");

        return RxJavaPlugins.onAssembly(new CompletableConcatIterable(sources));
    }
@ CheckReturnValue @ NonNull @ SchedulerSupport ( SchedulerSupport . NONE ) public static Completable concat ( Iterable < ? extends CompletableSource > sources ) { ObjectHelper . requireNonNull ( sources , "sources is null" ) ; return RxJavaPlugins . onAssembly ( new CompletableConcatIterable ( sources ) ) ; }
Returns a Completable which completes only when all sources complete, one after another.
<p>
<img width="640" height="303" src="https://raw.github.com/wiki/ReactiveX/RxJava/images/rx-operators/Completable.concat.png" alt="">
<dl>
<dt><b>Scheduler:</b></dt>
<dd>{@code concat} does not operate by default on a particular {@link Scheduler}.</dd>
</dl>
@param sources the sources to concatenate
@return the Completable instance which completes only when all sources complete
@throws NullPointerException if sources is null
Returns a Completable which completes only when all sources complete one after another . <p > <img width = 640 height = 303 src = https : // raw . github . com / wiki / ReactiveX / RxJava / images / rx - operators / Completable . concat . png alt = > <dl > <dt > <b > Scheduler : < / b > < / dt > <dd > {