我有一种方法可以将商品添加到我的帐户中:
fun addItem(@Body addExperience: AddItem): Single<Item>
有时用户可以选择多个项目,然后将它们全部批量添加到他的帐户中。我想将这些独立的调用与RxJava2(可能是并行的)链接在一起,然后使用每个调用的结果来增加进度条。
问题是---我不知道该怎么做!这可能是Flowable吗?如何从多个单打中生成此可流动对象?
答案 0 :(得分:0)
我建议每个请求都使用Flowable.fromIterable()
和flatMapSingle()
。您可以通知用户进度,因为在每个请求之后,都会调用subscribe
的onNext。
List<Single<Integer>> list = new ArrayList<>();
list.add(Single.just(1));
list.add(Single.just(2));
list.add(Single.just(3));
list.add(Single.just(4));
Flowable.fromIterable(list)
.flatMapSingle(singleRetrofitRequest -> singleRetrofitRequest, false, 2)
.subscribe(item -> System.out.println(item));
如您所见,我在flatMapSingle()
中添加了附加参数,以表示可以并行执行多少个请求。