猿问

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

我有一个Stream<A>我想迭代并从另一个服务中获取关于每条记录的附加信息。最后它应该变成一个Stream<B>.

由于我正在使用,Jetty我无法使用.block().

我如何使用 Reactor Project 做到这一点?


侃侃无极
浏览 185回答 1
1回答

慕少森

您可以使用 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 =&nbsp; Flux.fromStream(streamA)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.flatMap(this::fetchDataFromRemoteService)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.toStream();
随时随地看视频慕课网APP

相关分类

Java
我要回答