根據它的Javadoc上Mono<T>.materialize()
:Should Mono <T> .materialize return Flux <Signal<T>>?
變換傳入onNext,onError的和的onComplete信號轉換成信號。由於錯誤被物化爲一個信號,傳播將被停止並且onComplete將被髮射。完整信號將首先發出Signal.complete(),然後有效地完成通量。
這意味着,通過materialize
返回的Publisher
至少應該發出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();
我想在第一行有一個';'缺少以及太多下面的介紹吧? – Thomas
謝謝,我補充說。 – Wins