2017-06-16 12 views
1

我有一個記錄列表,我想在每次迭代中處理10條記錄。那麼我怎麼能有一個可觀察到的鏈條發出10條記錄的列表rxjava:如何向下傳遞一組數據

下面的代碼是不完整/正確的。我已添加它,以顯示我正在嘗試

new Function<Cursor, Observable<List<A>>>() { 
       @Override 
       public Observable<List<A>> apply(final Cursor cursor) throws Exception { 
        return Observable.create(new ObservableOnSubscribe<List<A>>() { 

         @Override 
         public void subscribe(ObservableEmitter<List<A>> e) throws Exception { 
          List <A> list = new ArrayList<Attendee>(); 

          Attendee attendee; 
          while ((attendee = pendingUpSyncAttendeeCursor.getNextItem()) != null) { 
           list.add(pendingUpSyncAttendeeCursor.getNextItem()); 
          } 

          e.onNext(list); 
          e.onComplete(); 

         } 
        }); 

       } 
      } 
    ).groupBy(new Function<List<Attendee>, Object>() { 

回答

0

不知道如果我明白你想要什麼。這裏是一個代碼,其中形成的10每次迭代列表我返回表的10個元素的列表

@Test 
public void twoDeepLevel() { 
    List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20); 
    Observable.from(list) 
      .flatMap(number -> Observable.from(list) 
        .take(10) 
        .collect(ArrayList<Integer>::new, ArrayList::add)) 
      .scan(new ArrayList<>(), 
        (lastItemEmitted, newItem) -> { 
         lastItemEmitted.add(newItem); 
         return lastItemEmitted; 
        }) 
      .subscribe(System.out::println, System.out::println); 
} 

您可以在這裏看到reactiveX更多的例子

https://github.com/politrons/reactive