如何在 Rxjava2 中将多个 Observable<T> 组合到 Observable<List<T>>

how to combine multi Observable<T> to Observable<List<T>> in Rxjava2

我有办法,

Observable<String> uploadFile(File file);

然后我实现方法

Single<List<String>> uploadFile(List<file> files){
     return Observable.fromIterable(files).flatMap(file -> upLoadFile(context, file))
            .toList();
 }

但是

输入 file1, file2, file3 输出为 List{file2, file1, file3}

如何保持文件的正确顺序?

如果要对平面图的输出进行排序,使用sorted()方法。

Observable.fromIterable(files)flatMap(file -> upLoadFile(context, file))
        .sorted().toList();

要保留可观察对象的顺序,请使用 concatMap 而不是 flatMap

Single<List<String>> uploadFile(List<file> files){
     return Observable.fromIterable(files).concatMap(file -> 
            upLoadFile(context, file))
            .toList();
 }