Java 如何重用价值?

Java 如何重用价值?,java,spring,spring-webflux,Java,Spring,Spring Webflux,考虑一个代码: WebClient webClient = ... ; public Mono<MyWrapper> someFunction () { Mono<MyDto> mono = webClient.get() .uri("myUrl") .retrieve() .bodyToMono(MyDto.class); Mono<FirstDto> first = mono.map(dto -

考虑一个代码:

WebClient webClient = ... ;

public Mono<MyWrapper> someFunction () {
    Mono<MyDto> mono = webClient.get()
       .uri("myUrl")
       .retrieve()
       .bodyToMono(MyDto.class);

    Mono<FirstDto> first = mono.map(dto -> {...});
    Mono<SecondDto> second = mono.map(dto -> {...}); //<- connection closed error here

    return Mono.zip(first, second).map(zip -> {
        return new MyWrapper(first, second);
    });
}
WebClient-WebClient=;
公共函数(){
Mono=webClient.get()
.uri(“myUrl”)
.retrieve()
.bodyToMono(MyDto.class);
Mono first=Mono.map(dto->{…});
Mono second=Mono.map(dto->{…});//{
返回新的MyWrapper(第一个、第二个);
});
}
第二次
map
操作导致连接关闭错误。我想flux试图发送新的请求。(到底是不是?)
第二,有没有一种方法可以在不发送新请求的情况下将mono映射两次:一次映射到一种类型,另一次映射到另一种类型

Mono<MyWrapper> mono = webClient.get()
        .uri("myUrl")
        .retrieve()
        .bodyToMono(MyDto.class)
        .compose(dto -> dto
                .zip(dto.map(dto -> {...}), dto.map(dto -> {...})))
        .map(MyWrapper::new);
Mono=webClient.get()
.uri(“myUrl”)
.retrieve()
.bodyToMono(MyDto.class)
.compose(dto->dto)
.zip(dto.map(dto->{…}),dto.map(dto->{…})))
.map(MyWrapper::new);
API: