public Mono<EmailDto> getEmail() {
Mono<EmailService> emailService = ReactiveSecurityContextHolder.getContext()
.map(securityContext -> (Principal) securityContext.getAuthentication().getPrincipal())
.map(principal -> emailServiceSelector.selectSuitable(principal.getInfo()));
return emailService.map(service -> service.findInfoByEmail(dto.getManagerEmail())) }
但是我对这种方法有一个问题,因为 emailService.map(service -> service.findInfoByEmail(dto.getManagerEmail()))
返回Mono<Mono<EmailDto>>
. 的实现findInfoByEmail(String email)
是
public Mono<EmailDto> findInfoByEmail(String email) {
return webClient.get()
.uri(emailServiceProperties.getUrl(), email)
.retrieve()
.bodyToMono(EmailDto.class);
}
我的方法返回Mono<EmailDto>
,不是Mono<Mono<EmailDto>>
。所以,我的问题是:如何转换Mono<Mono<EmailDto>>
为Mono<EmailDto>
?或者 mb 我完全错了,方法应该返回Mono<Mono<EmailDto>>
?期待任何帮助。