1

そのJavadocによるとMono<T>.materialize()

受信した onNext、onError、および onComplete シグナルを Signal に変換します。エラーはシグナルとして具体化されるため、伝播は停止され、onComplete が発行されます。完全なシグナルは、最初に Signal.complete() を発行し、次にフラックスを効果的に完了します。

これは、エラーが発生していないときにPublisher返されたmaterializeが少なくとも 2 つのシグナルを発する必要があることを意味します。

  • Signal.next
  • Signal.complete

ただし、このメソッドの戻り値の型は、Mono<Signal<T>>単一のイベントの発行のみを許可します。だから私は混乱しています。コードは

Flux<Signal<Integer>> mono = Mono.just(1).materialize();
StepVerifier.create(mono)
    .expectNext(Signal.next(1))
    .expectNext(Signal.complete())
    .verifyComplete();
4

1 に答える 1