为了账号安全,请及时绑定邮箱和手机立即绑定

Java + Reactor:每条记录的Http调用

Java + Reactor:每条记录的Http调用

侃侃无极 2021-08-25 10:23:00
我有一个Stream<A>我想迭代并从另一个服务中获取关于每条记录的附加信息。最后它应该变成一个Stream<B>.由于我正在使用,Jetty我无法使用.block().我如何使用 Reactor Project 做到这一点?
查看完整描述

1 回答

?
慕少森

TA贡献2019条经验 获得超9个赞

您可以使用 flatMap:


Flux<A> fluxA = //...;

Flux<B> fluxB = sampleFlux.flatMap(elem -> fetchDataFromRemoteService(elem));

其中 fetchDataFromRemoteService(A a) 返回发布者。


或者你可以使用 Flux#concatMap:


Flux<A> fluxA = //...;

Flux<B> fluxB = sampleFlux.concatMap(elem -> fetchDataFromRemoteService(elem));

flatMap 和 concatMap 之间的区别在于,在第二种情况下,所有操作都将相互跟随。


或者:


Stream<B> streamB =  Flux.fromStream(streamA)

                         .flatMap(this::fetchDataFromRemoteService)

                         .toStream();


查看完整回答
反对 回复 2021-08-25
  • 1 回答
  • 0 关注
  • 184 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信