Как дождаться, когда все Одноразовые элементы будут закончены?

Давайте рассмотрим следующий код:

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()
Другие вопросы по тегам