Mono
中有没有办法在出现错误时返回 flatMap
(onErrorFlatMap
)
我的情况是,当处理后出现错误时,我需要 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
是此用例的正确且推荐的模式。
关于java - Reactor Core - Mono - onError Flatmap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52697826/