【发布时间】:2018-06-08 14:58:17
【问题描述】:
所以下面的场景: 我有一个带有 f.e. 的动态数组列表。身份证。我想为这个列表中的每个 id 做一个对 api 的请求。仅当前一个请求得到成功回答时,才应启动以下请求。所以没有要求。 有没有什么漂亮的方法可以通过改造和 rxjava 来接收它。
我有一个递归函数的解决方案:
foo(int position, List<Int> idList, ApiController controller){
if(idList.size() < position){
//execute finish
}else{
controller.postRequest().subscribe(()->{
//Request finish. Do next request...
foo(++position, idList, controller);});
}
有没有办法用 rxjava2 漂亮地做到这一点?
我刚刚想出了一个 rxjava2 的异步解决方案: (这对我来说看起来不错,但并不能完全满足工作......
Observable.fromIterable(idList).flatMapCompletable(id -> {
controller.doRequests();})
.subscribe(()->{
//Finished all requests. Do stuff
});
【问题讨论】:
-
不,你总是有 2 个电话。我的问题是我有 n 个电话。
标签: android retrofit2 rx-java2