gpt4 book ai didi

java-8 - 来自返回 Mono 的方法的 WebFlux 链接

转载 作者:行者123 更新时间:2023-12-03 18:34:56 26 4
gpt4 key购买 nike

这是我用于删除项目的 Controller :

 public Mono<ResponseEntity> delete(
@PathVariable(value = "id") String id) {
return itemService.delete(id)
.map(aVoid -> ResponseEntity.ok());
}
itemService.delete(id)返回 Mono<Void>
但是当我成功删除一个项目时,它没有给我响应实体对象。它只返回空白的 json。

我似乎没有执行 map ,因为删除方法返回 Mono<Void>
如何正确地做到这一点?

最佳答案

响应式(Reactive)流发布者可以发送 3 种类型的信号:值、完成、错误。
A Mono<Void> publisher is way to signal when an operation is completed - you're not interested in any value being published, you just want to know when the work is done .实际上,您不能发出 Void 的值。类型,它不存在。map您正在使用的运算符将发出的值转换为其他值。

因此,在这种情况下,永远不会调用 map 运算符,因为没有发出任何值。您可以使用以下内容更改代码片段:

public Mono<ResponseEntity> delete(
@PathVariable(value = "id") String id) {
return itemService.delete(id)
.then(Mono.just(ResponseEntity.ok()));
}

关于java-8 - 来自返回 Mono<Void> 的方法的 WebFlux 链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57765480/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com