その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();