Java 8 返回Mono的方法的WebFlux链接<;无效>;
以下是用于删除项目的控制器:Java 8 返回Mono的方法的WebFlux链接<;无效>;,java-8,spring-webflux,project-reactor,Java 8,Spring Webflux,Project Reactor,以下是用于删除项目的控制器: public Mono<ResponseEntity> delete( @PathVariable(value = "id") String id) { return itemService.delete(id) .map(aVoid -> ResponseEntity.ok()); } 公共单声道删除( @PathVariable(value=“id”)字符串id{ returnitemserv
public Mono<ResponseEntity> delete(
@PathVariable(value = "id") String id) {
return itemService.delete(id)
.map(aVoid -> ResponseEntity.ok());
}
公共单声道删除(
@PathVariable(value=“id”)字符串id{
returnitemservice.delete(id)
.map(避免->响应性.ok());
}
itemService.delete(id)
返回Mono
但是,当我成功删除一个项目时,它并没有给我响应实体对象。它只返回空的json
我似乎没有执行map,因为delete方法返回Mono
如何正确执行此操作?被动流发布者可以发送3种类型的信号:值、完成和错误。 . 实际上,您不能发出
Void
类型的值,因为它不存在。
您正在使用的map
操作符将发出的值转换为其他值
因此,在这种情况下,不会调用map操作符,因为不会发出任何值。您可以使用以下方法更改代码段:
public Mono<ResponseEntity> delete(
@PathVariable(value = "id") String id) {
return itemService.delete(id)
.then(Mono.just(ResponseEntity.ok()));
}
公共单声道删除(
@PathVariable(value=“id”)字符串id{
returnitemservice.delete(id)
.然后(Mono.just(ResponseEntity.ok());
}
使用doOnSuccess也可以实现吗?@user1955934 doOnSuccess不会更改链的返回类型;这是副作用。