2016-11-17 65 views
0

我有一个API,它让我找回这样的对象:RxJava重复操作

Answer from API 
{ 
    currentPage = some_int; 
    maxPage = some_int; 
    List<String> items; //items on page 
} 

,我有一些RestApiService与方法getItems(页)谁返回

Observable<Answer from API> 

如何获得的问题从服务器的所有页面?

+2

看看[这个问题](https://stackoverflow.com/questions/37024967/how-to-handle-pagination-with-retrofit-2 -and-rxjava)或[这个问题](https://stackoverflow.com/questions/28047272/handle-paging-with-rxjava) – miensol

回答

0

这个代码库的例子应该做的伎俩

@Test 
public void repeat() { 
    int maxPage = 10; 
    int[] arrayPages = IntStream.range(0, maxPage).toArray(); 
    List<Integer> pages = IntStream.of(arrayPages).boxed().collect(Collectors.toList()); 
    Observable.from(pages) 
      .map(this::getItemsApi) 
      .toList() 
      .subscribe(list -> System.out.println("All items:" + list)); 
} 

public String getItemsApi(int page) { 
    return "Items form page " + page; 
} 

无论如何,你应该尽量避免复制/粘贴代码,而无需了解如何工作的。你可以在这里看到一些实际的例子和关于RxJava的一些文档https://github.com/politrons/reactive