是否有操作员或一些好的方法来使用Project Reactor Mono实现doOnEmpty()的行为?
我希望对操作结果有副作用(记录)。
这就是我现在拥有的:
myMono
.map(value -> new Wrapped(value))
.defaultIfEmpty(new Wrapped(null))
.doOnEach( ... )
.flatMap(wrapped ->
wrapped.value == null ?
Mono.empty() : Mono.just(wrapped.value))
因此,我包装了实际值,或者如果为空,则创建空包装器。然后将包装材料用于副作用。
使用诸如doOnEmpty(Consumer> signalConsumer)之类的东西会更好。为了使事情更加复杂,我需要访问Signal才能访问上下文(包含记录所需的数据)。
有这些answers,但我认为它们不适用或不提供对上下文的访问。
现在我想到了,也许合适的问题是:
“是否有一种方法可以确定doOnEach(Consumer Signal)是否可观察结果解析为空?”
答案 0 :(得分:0)
一些示例实现了“空捕获”而没有副作用。
data = xr.open_datasets(['dataset.nc','dataset2.nc'])
mean_tss = data.tss.mean()
mean_tss.plot(cmap ='rainbow', vmax = 20.0)