Есть ли оператор или какой-нибудь хороший подход для достижения поведения doOnEmpty () с Project Reactor Mono?
Я хочу иметь побочные эффекты (ведение журнала) для результата операции.
Этовот что у меня сейчас:
myMono
.map(value -> new Wrapped(value))
.defaultIfEmpty(new Wrapped(null))
.doOnEach( ... )
.flatMap(wrapped ->
wrapped.value == null ?
Mono.empty() : Mono.just(wrapped.value))
Так что я оборачиваю фактическое значение или в случае пустого создания пустой обертки.Затем оболочка используется для побочных эффектов.
Вместо этого было бы неплохо использовать что-то вроде doOnEmpty (Consumer> signalConsumer).Чтобы усложнить ситуацию, мне нужно иметь доступ к Сигналу , чтобы получить доступ к Контексту (содержит данные, необходимые для регистрации).
Есть эти ответы но я не думаю, что они применяют или предоставляют доступ к контексту.
Так что теперь, когда я думаю об этом, возможно, правильный вопрос:
"Есть ли способ определитьна doOnEach (потребительский сигнал), если наблюдаемое разрешено пустым? "