我想在Webflux环境中执行两个业务操作,在某种程度上,第二个操作只有在第一个操作成功后才会发生。在第二个操作完成后,我想返回第一个操作的结果。第二个操作调用一个org.springframework.web.reactive.function.client.WebClient。这是我到现在为止所尝试的:
public Mono<ResponseEntity<Resource>> callOperations(){
return service.operation1()
.flatMap(resource -> {
service.operation2();
return resource;
})
.map(ResponseEntity::ok);
}
我也尝试了然后订阅,但我不能让web客户端执行调用并返回service.operation1的结果。我该怎么做?
你需要使用响应式操作符构建一个流,并让WebFlux订阅它。在您的代码片段中,没有订阅service.operation2()
public Mono<ResponseEntity<Resource>> callOperations(){
return service.operation1()
.flatMap(resource -> {
return service.operation2()
.thenReturn(resource);
})
...
}