RxJava 1.xで書かれた小さなプロジェクトをReactor 3.xに変換しています。 flatMap(Observable::from)
を適切な対応物に置き換える方法を見つけることができなかったことを除いて、すべてが良いです。 Mono<List<String>>
があり、Flux<String>
に変換する必要があります。
ありがとう
Reactor 3では、from
演算子は、元のソース(配列、反復可能など)に応じていくつかのバリアントに特化されました。
あなたのケースではyourMono.flatMapMany(Flux::fromIterable)
を使用してください。
おそらくFlux::mergeSequential
静的ファクトリーは、ここにより適しています。
Iterable<Mono<String>> monos = ...
Flux<String> f = Flux.mergeSequential(monos);
この種のマージ(シーケンシャル)は、指定されたソース内の順序を反復可能に維持し、すべての参加ソースから熱心にサブスクライブ/要求します(モノラル結果の計算中により多くの並列化が期待されます)。
サイモンのおかげで、私はこのようなものを実装しました:
List<Object> dbObjects = ListObjectsBD();
List<Dao> daos = mapperObjToDao(dbObjects);
Flux<Dao> daoFlux = Mono.just(daos).flatMapMany(Flux::fromIterable);