我有一个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();
添加回答
举报
0/150
提交
取消