RxJava Flowable 中的延迟元素

Delay Element in RxJava Flowable

@ProjectReactor 发布者 Flux 中有一个名为 delayElements 的非常直观的运算符,用于在每个发出的元素之间引入延迟。例如,下面的 cod 每秒发出一个元素。

Flux.fromIterable(List.of(1, 2, 3))
      .delayElements(Duration.ofSeconds(1))
      .map(i -> i * 2)
      .doOnNext(r -> System.out.println(ZonedDateTime.now().toEpochSecond() + ": " + r))
      .blockLast();

为了在@Rxjava 中完成相同的行为,我必须做一些仪式。

final List<Integer> data = List.of(1, 2, 3);    
Flowable.interval(1, TimeUnit.SECONDS)
      .take(data.size())
      .map(i -> data.get(i.intValue()) * 2)
      .doOnNext(r -> System.out.println(ZonedDateTime.now().toEpochSecond() + ": " + r))
      .blockingLast();

有人知道在@Rxjava 中执行上述操作的更好方法吗?

我找到了一个相当简单的方法 . Thanks, Mina

Flowable.just(1,2,3)
  .zipWith(Flowable.interval(1, TimeUnit.SECONDS), (item, interval) -> item)
  .subscribe(r -> System.out.println(r));