Reactor Core - Mono - onError Flatmap
Reactor Core - Mono - onErrorFlatmap
有没有办法在 Mono
到 return a 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
是此用例的正确推荐模式。
有没有办法在 Mono
到 return a 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
是此用例的正确推荐模式。