如何自动订阅内部Flux / Mono?

时间:2017-09-04 09:51:52

标签: spring spring-boot reactive-programming project-reactor

我有一个(有界)通量的通量,我想转换为长通量,其中长度是内部通量的大小:

   Flux.just( Flux.just(1, 2, 3),  Flux.just(1, 2)  )
       .map(Flux::count)
       .log()
       .subscribe();

执行日志如下:

onSubscribe([Synchronous Fuseable] FluxArray.ArraySubscription)
request(unbounded)
onNext({ "operator" : "Count" })
onNext({ "operator" : "Count" })
onComplete()

Flux :: count返回Mono,而不是Long。订阅主要助焊剂时是否有任何操作员自动打开内部单声道?

1 个答案:

答案 0 :(得分:1)

flatMap()适合您:

  

将此Flux发出的元素异步转换为Publisher,然后通过合并将这些内部发布者展平为单个Flux,以允许它们交错。

https://projectreactor.io/docs/core/snapshot/api/reactor/core/publisher/Flux.html#flatMap