我在使用webflux时出现了一个现象,我两个项目使用mono返回结果,两个结果居然不一样,很纳闷
一个是正常的:
data:{"data":{"sessionId":"645cafdbb9f1b7abebd10af7","status":-1,"username":null},"code":0,"msg":"操作成功"}
这种返回结果是正常的
错误的:
{
"code": "0000",
"data": {
"sessionId": "645cafdbb9f1b7abebd10af7",
"status": -1,
"username": null
},
"message": "操作成功"
}
这种就错了,然后前端也就不出意外出现了问题。
这两个区别是一个有前缀data: 一个没有
为什么会出现这种问题呢
这是接口代码:

一个Mono对象代表一个包含零/一个(0…1)元素
Mono是一个专门的,它通过onNext发出信号,然后用onComplete信号终止(成功的Mono,有或没有值),或者只发出一个onError信号(失败的Mono)。
大多数实现都应该在调用后Mono立即调用onComplete 。是一个异常值:它不发出任何信号,这在技术上并没有被禁止,尽管在测试之外并不是非常有用。另一方面,明确禁止and的组合。
Mono仅提供可用于的运算符的子集Flux,并且一些运算符(特别是那些将 theMono与另一个结合的运算符Publisher)切换到Flux。例如,Mono#concatWith(Publisher)返回一个FluxwhileMono#then(Mono) 返回另一个Mono。
请注意,您可以使用 Mono来表示只有完成概念的无值异步进程(类似于 a Runnable)。要创建一个,您可以使用一个空的 Mono.