Java 反应堆堆芯-单级-平面图
当出现错误时,Java 反应堆堆芯-单级-平面图,java,spring,spring-boot,project-reactor,reactor,Java,Spring,Spring Boot,Project Reactor,Reactor,当出现错误时,Mono中是否有方法返回flatMap(onerrorflattmap) 我的场景是,当处理后出现错误时,我需要SubscriberContext,我需要将相同的错误向下传播 String test = "test"; Mono.just(test) .map(Integer::valueOf) .onErrorMap(error -> Mono.subscriberContext()
Mono
中是否有方法返回flatMap
(onerrorflattmap
)
我的场景是,当处理后出现错误时,我需要SubscriberContext,我需要将相同的错误向下传播
String test = "test";
Mono.just(test)
.map(Integer::valueOf)
.onErrorMap(error -> Mono.subscriberContext()
.map(context -> {
System.out.println(error + " -- " + context.getOrDefault("APPID", null));
return error;
}))
.subscriberContext(of("APPID", "APP-101"))
.block();
我发现这是解决问题的方法,但有更好的方法吗
String test = "test";
Mono.just(test)
.map(Integer::valueOf)
.onErrorResume(error -> Mono.subscriberContext()
.flatMap(context -> {
System.out.println(error + " -- " + context.getOrDefault("APPID", null));
return Mono.error(error);
}))
.subscriberContext(of("APPID", "APP-101"))
.block();
使用
onErrorResume
并最终返回一个Mono.error
是此用例的正确且推荐的模式