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不会更改链的返回类型;这是副作用。