首页 > 解决方案 > 如何改进 Observable 中的 thread.sleep

问题描述

我想改善可观察的 doOnNext 块内的睡眠。

如果有更好的方法推荐。

Observable.from(sampleList)
                .buffer(5)
                .doOnNext(first -> {
                    // first Logic
                    try {
                        Thread.sleep(500);
                    } catch (InterruptedException e) {}
                })
                .buffer(2)
                .doOnNext(second -> {
                    // second Logic
                    try {
                        Thread.sleep(500);
                    } catch (InterruptedException e) {}
                })
                .buffer(2)
                .doOnNext(third -> {
                    // third Logic
                    try {
                        Thread.sleep(500);
                    } catch (InterruptedException e) {}
                })
                .subscribe();

标签: observablerx-javathread-sleep

解决方案


delay运营商是你所需要的

Observable.from(sampleList)
            .buffer(5)
            .delay(500, TimeUnit.MILLISECONDS)
            .buffer(2)
            .delay(500, TimeUnit.MILLISECONDS)
            .buffer(2)
            .delay(500, TimeUnit.MILLISECONDS)
            .subscribe();

推荐阅读