如何从列表中发出项目,每个项目之间有延迟?

时间:2016-06-24 08:29:46

标签: list delay rx-java

我想从列表中发出项目,并且在每个发射之间我想要延迟。我试过这个:

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 个答案:

答案 0 :(得分:3)

您可以按照以下方式执行此操作:

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)