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

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

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

最佳答案

您可以按如下方式进行:

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)

关于list - 如何从列表中发出每个项目之间有延迟的项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38008896/

相关文章:

java - 同步 Collection 列表

Python groupby 按分隔符拆分列表

python - 我需要创建一个列表,其中包含一次取三个列表的所有总和,即添加前 3 个元素,然后添加下 3 个

rx-java - 项目reactor中是否有相当于RxJava Completable的东西?

rx-java - 我可以创建一个 Kotlin 扩展方法来将 rxJava 订阅添加到 CompositeSubscription 吗?

java - 如何根据一组值更新数据模型

python - 索引错误 : list index out of range Python 2. 7.x

objective-c - 计时器因调整窗口大小而延迟

javascript - mouseenter 函数上的 Jquery 视频延迟

javascript - jquery延迟函数执行