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);
我想从数组列表中重复发出具有指定延迟的项目。
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);