如何在<T> Rxjava2 中将多 Observable 与 Observable<List<T>> 组合在一起



>我有一个方法,

Observable<String> uploadFile(File file);

然后我实现方法

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

输入文件 1, 文件 2, 文件

3 输出是列表{文件2, 文件 1, 文件3}

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

为了保持可观察量的顺序,请使用concatMap而不是flatMap

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

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

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

最新更新