我需要创建一个从外部缓存获取数据的方法。如果找到数据,它会进行一些处理,否则它应该进行不同的处理。 该方法应返回 Mono
Mono<Void> myMethod() {
return getDataFromCache()
.flatMap(data -> processDataFromCache(data))
.switchIfEmpty(Mono.defer(() -> doSomethingElse()));
}
我遇到的问题是,因为 processDataFromCache(data) 返回类型是 Mono
如果您无法更改
processDataFromCache
和 doSomethingElse
的行为,那么您可以将它们与成功执行后出现的一些 fake 值连接起来:
Mono<Void> myMethod() {
return getDataFromCache()
.flatMap(data -> processDataFromCache(data).then("processed"))
.switchIfEmpty(Mono.defer(() -> doSomethingElse().then("new")))
.then();
}