2016-11-17 61 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