How to get String from Mono in reactive java

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 -> System.out.println(value), 
  error -> error.printStackTrace(), 
  () -> System.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.

Leave a Comment