Лучший способ - преобразовать Список Моно в Flux, а затем уменьшить ваш поток, чтобы получить одну строку, которая содержит все ваши подстроки.Тогда у вас есть Mono, который вы можете использовать до сих пор в асинхронном режиме.(Вы всегда должны работать над Mono / Flux, если хотите сохранить асинхронную парадигму с проектным реактором)
Пример:
List<Mono<String>> listOfMonosWithString = Arrays.asList(Mono.just("a"), Mono.just("b"), Mono.just("c"));
Flux<String> mergedMonos = Flux.fromIterable(listOfMonosWithString)
.flatMapSequential(Function.identity());
mergedMonos
.reduce(String::concat)
.doOnNext(System.out::println)
.subscribe();