在@ProjectReactor publisher 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中做上述事情的更好方法?
https://stackoverflow.com/questions/63088675
复制相似问题