如何在每一项之间延迟的情况下从列表中发出项? [英] How to emit items from list with delay between each item?

查看:7
本文介绍了如何在每一项之间延迟的情况下从列表中发出项?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想从列表中发射项目,在每个发射之间我想要一个延迟。我试过了:

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) {
        }
    });

但它只会延迟发射的开始,而不是每一项的发射。

推荐答案

您可以这样做:

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)

这篇关于如何在每一项之间延迟的情况下从列表中发出项?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆