Getting a String
from a Mono<String>
without a blocking call isn't easy, it's impossible. By definition. If the String
isn't available yet (which Mono<String>
allows), you can't get it except by waiting until it comes in and that's exactly what blocking is.
Instead of "getting a String
" you subscribe
to the Mono
and the Subscriber
you pass will get the String
when it becomes available (maybe immediately). E.g.
myMono.subscribe(
value -> Console.out.println(value),
error -> error.printStackTrace(),
() -> Console.out.println("completed without a value")
)
will print the value or error produced by myMono
(type of value
is String
, type of error
is Throwable
). At https://projectreactor.io/docs/core/release/api/reactor/core/publisher/Mono.html you can see other variants of subscribe
too.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…