>我有一个方法,
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();