Je convertis un petit projet écrit dans RxJava 1.x en Reactor 3.x. Tout va bien, sauf que je ne savais pas comment remplacer flatMap(Observable::from)
par une contrepartie appropriée. J'ai Mono<List<String>>
et je dois le convertir en Flux<String>
.
Merci
Dans Reactor 3, l'opérateur from
a été spécialisé dans quelques variantes, en fonction de la source d'origine (tableau, itérable, etc.).
Utilisez yourMono.flatMapMany(Flux::fromIterable)
dans votre cas.
Je pense que probablement Flux::mergeSequential
usine statique correspond mieux ici:
Iterable<Mono<String>> monos = ...
Flux<String> f = Flux.mergeSequential(monos);
Ce type de fusion (séquentiel) conservera l'ordre dans une source donnée, et sera également abonné/demandé avec impatience à toutes les sources participantes (donc davantage de parallélisation attendue lors du calcul des résultats mono).
Merci Simon, j'ai mis en place quelque chose comme ça:
List<Object> dbObjects = ListObjectsBD();
List<Dao> daos = mapperObjToDao(dbObjects);
Flux<Dao> daoFlux = Mono.just(daos).flatMapMany(Flux::fromIterable);