Java XJava 无限发射列表中的项目

Java RxJava Emit Items From List Infinitly

我想从数组列表中重复发出具有指定延迟的项目。

    Observable.from(saverFileNameList)
            .subscribeOn(AndroidSchedulers.mainThread())
            .flatMap(urlString -> Observable.just(urlString)
                            .delay(5000, TimeUnit.MILLISECONDS)
                            .observeOn(AndroidSchedulers.mainThread())
                            .doOnNext(urlString1 -> {
                                ...


                            })
            ).repeat()
            .subscribe();

这不起作用,出于某种原因,我在 onNext 上设置了打印日志,我可以看到所有内容都以非常快的速度打印,因此没有应用延迟。我做错了什么

如果您想将源的发射延迟给定的量,您可以使用以下方法:

Observable.from(saverFileNameList)
.delay(5000, TimeUnit.MILLISECONDS)
.repeat()
.observeOn(AndroidSchedulers.mainThread())
.subscribe(v -> { }, Throwable::printStackTrace);

如果你想有中间延迟,使用以下:

Observable.from(saverFileNameList)
.zipWith(Observable.interval(5, SECONDS).onBackpressureBuffer(), (a, b) -> a)
.repeat()
.observeOn(AndroidSchedulers.mainThread())
.subscribe(v -> { }, Throwable::printStackTrace);