2016-06-24 6 views
2

Я хочу излучать предметы из списка и между каждой из эмиссий хочу задержку. Я пробовал это:Как испускать элементы из списка с задержкой между каждым элементом?

final Subscription subscription = Observable.from(listOfItems) 
    .delay(2000, TimeUnit.MILLISECONDS) 
    .subscribe(new Subscriber<String>() { 
     @Override 
     public void onCompleted() { 

     } 

     @Override 
     public void onError(Throwable e) { 

     } 

     @Override 
     public void onNext(String sss) { 
     } 
    }); 

но это только задерживает начало эмиссии, а не излучение каждого элемента.

ответ

1

Вы можете сделать это следующим образом:

List<Integer> listOfItems = Arrays.asList(1, 2, 3); 
     Observable.from(listOfItems) 
       .zipWith(Observable.interval(2, TimeUnit.SECONDS), (item, notUsed) -> item) 
       .subscribe(System.out::println); 

Если вы хотите задержать перед первым использованием эмиссионного Observable.interval(initialDelay, delay, TimeUnit)

Смежные вопросы