【发布时间】:2020-07-30 02:43:11
【问题描述】:
@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 中执行上述操作的更好方法吗?
【问题讨论】:
标签: rx-java project-reactor rx-java3