【VUE+SpringBoot】前台更改数据后,报错,但是数据库明明更改了

问题

前台操作,更改了数据,显示失败。但是数据库中数据的的确确更改掉了。

1
2
3
4
5
6
7
8
9
10
11
12
13
editUserInfo() {
this.$refs.editFormRef.validate(async valid => {
if(!valid) { return; }
const {data: res} = this.$http.put("editUser", this.editForm);
if(res=="success") {
this.$message.success("操作成功");
this.editDialogVisible = false;
this.getUserList();
} else {
this.$message.error("操作失败");
}
});
},

思路

  • 数据库中数据被更改掉了,说明前端的put请求是成功的,后台也正常处理掉了。
  • 在前端控制台打印日志,查看访问后台后返回的数据是否正常。然而,控制台报错undefined 。
    仔细查看前端的数据处理,发现缺少await关键字。这也是为什么报错“undefined ”的原因了,根本就没有对后台返回的数据进行接收处理。

    处理

    添加上await关键字即可。最终代码如下:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    editUserInfo() {
    this.$refs.editFormRef.validate(async valid => {
    if(!valid) { return; }
    const {data: res} = await this.$http.put("editUser", this.editForm);
    if(res=="success") {
    this.$message.success("操作成功");
    this.editDialogVisible = false;
    this.getUserList();
    } else {
    this.$message.error("操作失败");
    }
    });
    },

    归纳

    async + await 组合,用于异步处理后台返回的数据。