【发布时间】:2021-09-16 10:41:07
【问题描述】:
如何实现 doOnNext 等待多个异步任务的结果?
例如-
public void getImages(User user) {
Flowable.create(new FlowableOnSubscribe<User>() {
@Override
public void subscribe(@io.reactivex.rxjava3.annotations.NonNull FlowableEmitter<User> emitter) throws Throwable {
emitter.onNext(user);
}
}, BackpressureStrategy.BUFFER)
.observeOn(Schedulers.io())
.doOnNext(user -> {
ArrayList<String> imagesUrls = user.getUrls();
for (String url : imagesUrls) {
storage.getReference().child("images").child(url).getBytes(ParametersConventions.FIREBASE_DOWNLOAD_IMAGE_MAX_SIZE).
addOnSuccessListener(bytes -> {
doSomething(bytes);
});
}
})
.doOnNext(user -> {
doSomething();
})
.doOnComplete(...);
}
我希望在所有下载图像的异步调用完成后调用 doSomething 的 doOnNext。
【问题讨论】: