我需要使用 RxJava 的延迟运算符。谁能解释一下它是如何工作的?线程在延迟期间会休眠吗?延迟有多精确?在最坏的情况下,我需要在 1 天(24 小时延迟(后几乎发出项目。
使用延迟运算符,我们将管道的创建从懒惰延迟到急切。但是一旦开始发出延迟运算符就不会影响发出的项目
@Test
public void delayCreation() {
long start = System.currentTimeMillis();
Subscription subscription = Observable.just("hello reactive world")
.delay(200, TimeUnit.MICROSECONDS)
.subscribe(n -> System.out.println("time:" + (System.currentTimeMillis() - start)));
new TestSubscriber((Observer) subscription).awaitTerminalEvent(1000, TimeUnit.MILLISECONDS);
}
您可以在此处查看更多延迟示例 https://github.com/politrons/reactive/blob/master/src/test/java/rx/observables/utils/ObservableDelay.java