Java WebFlux中映射的正确使用
我的方法返回Java WebFlux中映射的正确使用,java,mono,reactive-programming,spring-webflux,spring-reactive,Java,Mono,Reactive Programming,Spring Webflux,Spring Reactive,我的方法返回Mono,而不是Mono。 所以,我的问题是: 如何将Mono转换为Mono?或者mb我完全错了,方法应该返回Mono?期待您的帮助。平面图和地图之间有区别。 flatMap应用于非阻塞操作,或者简言之,任何返回单声道、通量的操作。 当您希望在固定时间内转换对象/数据时,应使用映射。同步执行的操作 您的findInfoByEmail正在进行异步调用 因此,您应该使用: public Mono<EmailDto> findInfoByEmail(String email)
Mono
,而不是Mono
。
所以,我的问题是:
如何将
Mono
转换为Mono
?或者mb我完全错了,方法应该返回Mono
?期待您的帮助。平面图和地图之间有区别。
flatMap应用于非阻塞操作,或者简言之,任何返回单声道、通量的操作。
当您希望在固定时间内转换对象/数据时,应使用映射。同步执行的操作
您的findInfoByEmail
正在进行异步调用
因此,您应该使用:
public Mono<EmailDto> findInfoByEmail(String email) {
return webClient.get()
.uri(emailServiceProperties.getUrl(), email)
.retrieve()
.bodyToMono(EmailDto.class);
}
这是官方发来的
平面图和地图之间存在差异。 flatMap应用于非阻塞操作,或者简言之,任何返回单声道、通量的操作。 当您希望在固定时间内转换对象/数据时,应使用映射。同步执行的操作 您的
findInfoByEmail
正在进行异步调用
因此,您应该使用:
public Mono<EmailDto> findInfoByEmail(String email) {
return webClient.get()
.uri(emailServiceProperties.getUrl(), email)
.retrieve()
.bodyToMono(EmailDto.class);
}
这是官方发来的
您做的每件事都是对的,但是您需要使用flatMap()来代替map()。 map用于将特定对象转换为其他对象,其中as flatMap()用于将所有1到N个对象转换为Mono。 因此,您可以使用以下代码段:-
return emailService.flatMap(service->service.findInfoByEmail(dto.getManagerEmail())}您做得很好,但需要使用flatMap()代替map()。 map用于将特定对象转换为其他对象,其中as flatMap()用于将所有1到N个对象转换为Mono。 因此,您可以使用以下代码段:-
返回emailService.flatMap(service->service.findInfoByEmail(dto.getManagerEmail())}如果您有一个
Mono
和另一个Mono
,您需要传递控制权,然后使用Mono::flatMap
@Vladimir有任何更新吗?你试过答案了吗?@abhinabacharaborty是的,非常喜欢。这正是我无法理解的。如果你有一个Mono
和另一个Mono
,你需要传递控制权,然后使用Mono::flatMap
@Vladimir有任何更新吗?你试过答案了吗?@abhinabacharaborty是的,非常喜欢。这正是我无法理解的。
return emailService.flatMap(service -> service.findInfoByEmail(dto.getManagerEmail())) }