0

私はロングインナーフラックスの大きさであるロングのフラックス、変身したい(有界)フラックスのフラックスを持っている:インナーFlux/Monoを自動的に購読するには?

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はLongではなくMonoを返します。メインフラックスを購読するときに、この内部モノを自動的に解凍する演算子はありますか?

答えて

1

flatMap()はあなたのためにあります:

がそれらをインターリーブすることができた、合併を通じて単一Fluxに、その後、非同期Publisher SにこのFluxから放出された要素を変換し、これらの内部の出版社を平ら。答えを

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

+0

ありがとう!私が解決しようとする問題は実際には少し異なります:内側のモノが親フラックスに直接ない場合は、どの演算子を使うべきですか?Flux >> 'Flux > 'この場合でもフラットマップを使用できますか? –

+1

Hm。いいえ、私はこれがうまくいかないと思います。これは 'Tuple'の値を集めた値であり、何とか必要に応じてその部分を処理するものがあるかどうかはわかりません。 –

+1

最後に、内側の磁束/モノには加入しないで解決策を見つけました。 groupByの後に次の演算子を連鎖して、グループの要素を数えた後にタプルを作成します: '.flatMap(group - > group.count()。map(count - > Tuples.of(group.key()、count) )); ' –

関連する問題