web-dev-qa-db-ja.com

ProjectReactorでMonoからオプションの値を処理する

Mono型を返す別の非同期メソッドを呼び出すOptionalが必要です。

  1. Optionalが空でない場合は、値があります。
  2. MonoEmpty値が空の場合、はOptionalです。

これが私が今していることです:

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

明らかに、これは、呼び出し可能オブジェクトが完了した後に2つの演算子を使用するため、理想的ではありません。可能であれば、Mono.empty()またはmono値をfromCallable内から取得したいと思います。

私が望むことを達成するための最良の方法は何ですか?

6
bertzzie

どうですか:

Optional<Integer> optional = Optional.of(5);
Mono<Optional<Integer>> monoWithOptional = Mono.just(optional);
Mono<Integer> monoWithoutOptional = monoWithOptional.flatMap(Mono::justOrEmpty);
0
Roger Gouveia