Saltar al contenido

Cómo obtener cuerdas de Mono en java reactivo

Este tutorial ha sido aprobado por nuestros especialistas así se asegura la veracidad de este ensayo.

Solución:

conseguir un String a partir de una Mono sin un bloqueo de llamadas no es fácil, es imposible. Por definición. Si el String aún no está disponible (que Mono permite), no puede obtenerlo excepto esperando hasta que entre y eso es exactamente lo que es bloquear.

En lugar de “obtener un String” tú subscribe hacia Mono y el Subscriber pasas obtendrás el String cuando esté disponible (tal vez inmediatamente). P.ej

myMono.subscribe(
  value -> Console.out.println(value), 
  error -> error.printStackTrace(), 
  () -> Console.out.println("completed without a value")
)

imprimirá el valor o error producido por myMono (tipo de value es Stringtipo de error es Throwable). En https://projectreactor.io/docs/core/release/api/reactor/core/publisher/Mono.html puede ver otras variantes de subscribe también.

De acuerdo con el documento que puede hacer:

String getValue(Mono mono) 
    return mono.block();

ser consciente de la llamada de bloqueo

Finalmente, lo que funcionó para mí es llamar al método flatMap como se muestra a continuación:

public void getValue(Mono monoString)

   monoString.flatMap(this::print);

Comentarios y valoraciones

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *