首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RxJava Flowable中的延迟元素

RxJava Flowable中的延迟元素
EN

Stack Overflow用户
提问于 2020-07-25 21:05:38
回答 1查看 171关注 0票数 0

在@ProjectReactor publisher Flux中有一个非常直观的名为delayElements的运算符,可以在每个发出的元素之间引入延迟。比方说,下面的cod每秒发出一个元素。

代码语言:javascript
复制
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中完成相同的行为,我必须进行一些仪式。

代码语言:javascript
复制
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中做上述事情的更好方法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-30 02:43:12

我发现了一个相当简单的方法here。谢谢,Mina

代码语言:javascript
复制
Flowable.just(1,2,3)
  .zipWith(Flowable.interval(1, TimeUnit.SECONDS), (item, interval) -> item)
  .subscribe(r -> System.out.println(r));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63088675

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档