У меня есть ситуация, в которой я не могу понять, что применяет метод Котлина , используемый для Реактора Моно объекта. Когда из метода apply я вызываю методы объекта mono, вызываемые методы Mono вообще не отвечают.
Пример без применяется (работает как положено):
reactor.core.publisher.Mono
.just(1)
.doOnSuccessOrError { i, t ->
println("doOnSuccessOrError")
}
.subscribe {
println("subscribe: value=$it")
}
Который выдает консольный вывод:
doOnSuccessOrError
subscribe: value=1
Как и ожидалось, сначала вызывается doOnSuccessOrError () , затем subscribe () .
Пример с apply (работает не так, как ожидалось):
reactor.core.publisher.Mono
.just(1)
.apply {
println("Apply")
doOnSuccessOrError { i, t ->
println("doOnSuccessOrError")
}
}
.subscribe {
println("subscribe: value=$it")
}
Который выдает консольный вывод:
Apply
subscribe: value=1
Теперь он больше не печатает doOnSuccessOrError, что противоположно тому, что я ожидал. Почему не напечатано?