Как дождаться, когда все Одноразовые элементы будут закончены?
Давайте рассмотрим следующий код:
List<Mono<String>> monoList= apiCall();
List<Disposable> disposableList = monoList.stream()
.map(m-> m.subscribe(str-> {
log.info("Mono is finished with "+ str);
})
).collect(Collectors.toList());
// I need to await here
Мне нужно дождаться, когда все моно закончит.
Как я мог этого добиться?
1 ответ
Не смешивая разные API потоковой передачи, вы можете использовать побочные эффекты вместо подписок и дождаться завершения с помощью then()
Mono<Void> await = Flux
.fromIterable(apiCall())
.flatMap(m -> m.doOnSuccess(
str -> log.info("Mono is finished with "+ str)
)).then()