Procesamiento opcional Valor del Mono en el proyecto del reactor

bertzzie:

Quiero tener una Monoque llama a otro método asíncrono que devuelve un Optionaltipo de:

  1. tener un valor si el Optionalno está vacío,
  2. es MonoEmptysi el Optionalvalor está vacío.

Esto es lo que hago en este momento:

Mono.fromCallable(() -> someApi.asyncCall()) .filter(Optional::isPresent) .map(Optional::get)

Obviamente, esto no es ideal, ya que utiliza dos operadores después de la exigible completó. Si es posible, me gustaría tener el Mono.empty()o mono valor desde el interior fromCallable.

¿Cuál es la mejor manera de lograr lo que quiero?

Ilya zinc:

Hay una alternativa a flatMapeso es un poco mejor que Optional.isPresenty Optional.getque puede inducir a poner accidentalmente caen en el vacío Optional:

Mono.fromCallable(() -> someApi.asyncCall())
  .flatMap(optional -> optional.map(Mono::just).orElseGet(Mono::empty))

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=173235&siteId=1
Recomendado
Clasificación