为了账号安全,请及时绑定邮箱和手机立即绑定

在 mono.compose( ) 中添加 doOnSuccess( ) 与简单的

在 mono.compose( ) 中添加 doOnSuccess( ) 与简单的

慕田峪9158850 2021-08-19 21:18:51
查看Spring Actuator MetricsWebFilter并看到了这段代码:@Overridepublic Mono<Void> filter(ServerWebExchange exchange, WebFilterChain chain) {    return chain.filter(exchange).compose((call) -> filter(exchange, call));}private Publisher<Void> filter(ServerWebExchange exchange, Mono<Void> call) {    long start = System.nanoTime();    ServerHttpResponse response = exchange.getResponse();    return call.doOnSuccess((done) -> success(exchange, start))    ... more code ...}没有compose()映射会有什么区别吗?@Overridepublic Mono<Void> filter(ServerWebExchange exchange, WebFilterChain chain) {    return chain.filter(exchange).doOnSuccess( ... ) ... more code...}我的线索是,compose()与transform(). doOnSuccess()但是每个订阅者也执行一次。是否只是为了方便,使用filter(...)函数而不是内联代码?
查看完整描述

2 回答

?
动漫人物

TA贡献1815条经验 获得超10个赞

我认为这只是一种方便,因为 filter 方法比您的代码片段建议的要长一些,并且有doOnSuccessanddoOnError运算符。


查看完整回答
反对 回复 2021-08-19
  • 2 回答
  • 0 关注
  • 639 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信