Как преобразовать Mono> в Flux

Я конвертирую небольшой проект, написанный на RxJava 1.x реактору 3.X. Все хорошо, кроме того, что я не смог узнать, как заменить flatMap(Observable::from) с соответствующим партнером. У меня Mono<List<String>> и мне нужно преобразовать его в Flux<String>.

спасибо

3 ответов


в реакторе 3,from оператор был специализирован на несколько вариантов, в зависимости от исходного источника (массив, iterable и т. д...).

использовать yourMono.flatMapMany(Flux::fromIterable) в вашем случае.


спасибо Саймон, я реализовал что-то вроде этого:

List<Object> dbObjects = ListObjectsBD();
    List<Dao> daos = mapperObjToDao(dbObjects);
    Flux<Dao> daoFlux = Mono.just(daos).flatMapMany(Flux::fromIterable);

Я думаю, что, наверное,Flux::mergeSequential статическая фабрика подходит лучше здесь:

 Iterable<Mono<String>> monos = ...
 Flux<String> f = Flux.mergeSequential(monos);

этот вид слияния (последовательный) будет поддерживать порядок внутри данного источника iterable, а также будет подписываться/запрашивать с нетерпением от всех участвующих источников (поэтому ожидается больше распараллеливания при вычислении результатов mono).