当前位置: 代码迷 >> 综合 >> Parsing error: await is a reserved word
  详细解决方案

Parsing error: await is a reserved word

热度:70   发布时间:2023-12-16 04:18:17.0

问题:这个报错是在Vscode编辑中出现一个红色波浪线,鼠标放上去提示:Parsing error: await is a reserved word, 解析错误:await是一个保留字,说明编辑器没有识别这个,当成一个关键字了.

因为在表单校验外部给函数加了一个async关键字,想在回调函数中用写同步代码,但是报错。

// 保存
async save() {
    this.$refs.form.validateForm((valid) => {
    if (valid) {
    // 加await目的是等保存完成后再刷新列表await /* 此处async 报错*/ this.saveRecord()this.$emit('closeModal')this.reset()}})
}

修改之后:

save() {
    
// 此时应将async定义在回调函数(匿名函数)前面,
// 外部函数和回调函数形成了两个独立的作用域,
// 定义在外部的函数和回调函数形成了两个块级作用域,
// 此时,await和aysnc不在同一个作用域中,导致无法配对,报错this.$refs.form.validateForm(async (valid) => {
    if (valid) {
    // 加await目的是等保存完成后再刷新列表await /* 此处async 没有报错*/ this.saveRecord()this.$emit('closeModal')this.reset()}})
}

总结:如果想在回调函数内部写同步代码,则需要将async关键字放在回调函数前面,使async和await在同一个作用域内

  相关解决方案