Ваш Mono.when()
вызов имеет тип Mono<Void>
- он просто завершается (или выдает ошибки, если один из его издателей возвращает ошибку.) Таким образом, никогда не отправляется элемент, поэтому никогда не происходит вызов subscribe()
, поэтому код в этом блоке подписки никогда не выполняется.
Непонятно, что именно вы хотите здесь сделать, но самое быстрое «исправление» может быть до materialize()
перед подпиской, поэтому вы получаете сигнал onComplete()
, распространяемый как элемент:
Mono
.when(monos)
.materialize()
.subscribe(__ -> {
int i1 = mono1.block();
int i2 = mono1.block();
System.out.println(i1 + i2);
});
Обратите внимание, что здесь будет напечатано 2
, а не 3
, поскольку оба i1
и i2
ссылаются на mono1
.