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

San*_*aju 3 java android rx-java

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

我需要重复这个约50次.

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

Yar*_*hiy 5

Observable.range(1, 50)
    .flatMap(index ->      // for every index make new request
        makeRequest(index) // this shall return Observable<Response>
            .retry(N)      // on error => retry this request N times
    )
    .subscribe(response -> saveToDb(response));
Run Code Online (Sandbox Code Playgroud)

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

Observable.range(1, 50)
    .flatMap(index ->      // for every index make new request
        makeRequest(index) // this shall return Observable<Response>
            .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();
Run Code Online (Sandbox Code Playgroud)