Parsing error: await is a reserved word

问题:这个报错是在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在同一个作用域内

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值