RxJava2 - 如何知道所有 concatMapSingle 操作何时完成迭代 Observable

RxJava2 - How to know when all concatMapSingle operations finished on iterating Observable

我有以下方法:

private fun bindUploadPhotos(uploadPhotoCommands: List<UploadPhotoCommand>): Disposable {
    return Observable.fromIterable(uploadPhotoCommands)
            .concatMapSingle { param ->
                requestUploadPhoto.getSingle(param)
            }
            .doFinally {
                onAllPhotosUploaded()
            }
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe {
                onPhotoUploaded()
            }
}   

我按顺序上传照片。我希望 doFinally 在所有照片上传成功后执行。但是,它会立即执行。

我不是 RxJava2 高手,所以我很乐意采用您不同的方法来实现我的目的。

onComplete 在您上传完所有照片后调用。所以打电话给 onAllPhotosUploaded 那里

private fun bindUploadPhotos(uploadPhotoCommands: List<UploadPhotoCommand>): Disposable {
    return Observable.fromIterable(uploadPhotoCommands)
            .flatMapSingle { param ->
                requestUploadPhoto.getSingle(param)
            }.subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe ({onPhotoUploaded},{},{onAllPhotosUploaded()})
}