当前位置:  开发笔记 > 编程语言 > 正文

如何在RxJava/RxAndroid中多次重复相同的网络请求(不同的参数)?

如何解决《如何在RxJava/RxAndroid中多次重复相同的网络请求(不同的参数)?》经验,为你挑选了1个好方法。

所以,我有一个/downloadAPI,它返回一个泛型Object(基于索引号,这是它自己的参数)然后我必须将它保存到我的数据库,如果事务成功,我必须增加我的索引并重复相同的过程再说一遍,否则retry().

我需要重复这个约50次.

如何使用Rx-Java实现此过程?我现在卡住了.任何帮助都是极好的.谢谢.



1> Yaroslav Sta..:
Observable.range(1, 50)
    .flatMap(index ->      // for every index make new request
        makeRequest(index) // this shall return Observable
            .retry(N)      // on error => retry this request N times
    )
    .subscribe(response -> saveToDb(response));

回答评论(仅在先前的响应保存到db后发出新请求):

Observable.range(1, 50)
    .flatMap(index ->      // for every index make new request
        makeRequest(index) // this shall return Observable
            .retry(N)      // on error => retry this request N times
            .map(response -> saveToDb(response)), // save and report success
        1                  // limit concurrency to single request-save
    )
    .subscribe();

推荐阅读
我我檬檬我我186
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有