Reactor Flux 中的 doOnFirst 元素?
doOnFirst element in Reactor Flux?
我只想对 Flux 中元素的第一次发射执行一些操作(副作用)。
有办法吗?
一些上下文:我想在 Flux
上调用 .elapsed()
并仅记录第一个经过的时间。
事实证明我可以使用 .switchOnFirst
运算符执行条件逻辑。
所以我有:
flux
.elapsed()
.switchOnFirst { signal, flux ->
if (signal.hasValue()) {
meterRegistry.timer("my.latency", tags).record(signal.get()!!.t1, TimeUnit.MILLISECONDS)
}
flux // returns the whole flux
}
.flatMap { Mono.just(it.t2) } // back to original flux
我只想对 Flux 中元素的第一次发射执行一些操作(副作用)。
有办法吗?
一些上下文:我想在 Flux
上调用 .elapsed()
并仅记录第一个经过的时间。
事实证明我可以使用 .switchOnFirst
运算符执行条件逻辑。
所以我有:
flux
.elapsed()
.switchOnFirst { signal, flux ->
if (signal.hasValue()) {
meterRegistry.timer("my.latency", tags).record(signal.get()!!.t1, TimeUnit.MILLISECONDS)
}
flux // returns the whole flux
}
.flatMap { Mono.just(it.t2) } // back to original flux