根据其 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();