1 回答

TA貢獻1859條經(jīng)驗 獲得超6個贊
我認為您遇到的問題是由于SomeUtil.user()未發(fā)出值而引起的。
為什么我認為是這樣的:我嘗試了一個簡單的例子來重現(xiàn)您的問題:
@Test
void test() {
Mono<String> monoWithContent =
Mono.just("Content")
.map(element -> exceptionThrower());
// TEST 1
StepVerifier.create(monoWithContent)
.expectError()
.verify();
Mono<String> monoWithoutContent =
Mono.empty()
.map(element -> exceptionThrower());
// TEST 2
StepVerifier.create(monoWithoutContent)
.expectError()
.verify();
}
String exceptionThrower() {
throw new RuntimeException();
}
結(jié)果是:
TEST 1 - 成功通過,因為該值是從發(fā)出的,Mono并且它被映射到一個異常(RuntimeException由exceptionThrower().
TEST 2 - 失敗,因為沒有要從中發(fā)出的值Mono,因此map不會調(diào)用該方法,并且整個執(zhí)行完成且沒有錯誤。
總而言之,如果 沒有發(fā)出任何內(nèi)容Publisher,則不會調(diào)用轉(zhuǎn)換操作。
添加回答
舉報