Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java WebFlux中映射的正确使用_Java_Mono_Reactive Programming_Spring Webflux_Spring Reactive - Fatal编程技术网

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())) }