问题描述
我是整个Spring反应式Webflux的新手。我的问题很简单。在我的addActions()中,我试图通过调用getCurrentVal()获得一个Mono。这很好。但是我需要获取该值并更新属性(submission.stateVal)。然后传递调用customService.addActions(),它返回Mono。无需使用block()就能做到吗?
@Autowired
private CustomService customService;
public Mono<CustomResponse> addActions(String id,String Jwt,Submission submission) {
Mono<String> updatedStateVal = getCurrentStateVal(tpJwt,id);
// submission.setStateVal(updatedStateVal);
// return customService.addActions(id,jwt,submission);
}
private Mono<String> getCurrentVal(String tpJwt,String id) {
return customService.findById(id,tpJwt)
.map(r -> r.getStateVal());
}
解决方法
return getCurrentStateVal(tpJwt,id)
.flatMap(s -> {
submission.setStateVal(s);
return customService.addActions(id,tpJwt,submission);
});