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()})
}
我有以下方法:
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()})
}