假設我有以下幾行
repository.findUser(name = "John Doe")
.map {
// User was found, continue processing
}
.switchIfEmpty(
// Just log that the user was not found
)
我目前的非最佳實踐但有效的方法是將日志記錄放在另一個函式中并呼叫它,例如 switchIfEmpty(userNotFound())
private fun userNotFound(): Mono<out Disposable> {
logger.info { "No user was found." }
return Mono.empty()
}
這有效,但我無法想象這是我應該做的。我該如何改進?
uj5u.com熱心網友回復:
一種方法是使用Mono.deferinside switchIfEmpty:
repository.findUser(name = "John Doe")
.switchIfEmpty(Mono.defer{ ... })
或者,您可以使用doOnSuccess并檢查是否Mono在沒有資料的情況下完成(Java 中的示例):
repository.findUser(name = "John Doe")
.doOnSuccess(e -> {
if (e == null) {
log.info("No user was found.");
}
})
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/399773.html
標籤:科特林 弹簧-webflux 项目反应堆
上一篇:單擊導航欄切換時,jquerytoggleClass不會切換css類
下一篇:在kotlin中合并活動
