vue:语法错误:await 是保留字
2018-06-19
20983
async checkDriver(mobile) {
this.$axios({
url: "xxx",
method: "POST",
data: {
mobile: mobile
}
}).then(res => {
console.log("========="+res.status);
return res.data.status;
}).catch(error => {
this.$message.error(error.toString());
return -1;
});
},
addValidate() {
this.$refs['form'].validate((valid) => {
if (valid) {
let status = await this.checkDriver(this.form.mobile);
console.log(status);
} else {
return false;
}
});
未解析的变量或类型 await。突出显示可能旨在异步但缺少 async 修饰符的函数。如何在 => 中使用 await?给我一些帮助。谢谢
3个回答
在函数体中使用 await 的函数必须使用
async
关键字。
因此,将
async
从
checkDriver
移至
addValidate
:
checkDriver(mobile) {
// ...
}
async addValidate() {
// ...
let status = await this.checkDriver(this.form.mobile);
}
此外,
checkDriver
方法应返回一个承诺。因此,将
checkDriver
的内容更改为:
checkDriver(mobile) {
return this.$axios({
url: "xxx",
method: "POST",
data: {
mobile: mobile
}
})
}
并且从 Promise(在本例中为 axios)返回的数据将分配给
addValidate
中的
status
。
然后,如果您想处理错误,则应将
await
调用包装在 try/catch 块中。
skovmand
2018-06-19
addValidate() {
this.$refs['form'].validate( async (valid) => {
if (valid) {
let status = await this.checkDriver(this.form.mobile);
console.log(status);
} else {
return false;
}
});
您可以在参数旁边添加缺少的
async
关键字
Isaac
2018-06-19
您必须将
addValidate()
设为异步,例如
async addValidate() { /* ... */ } 。您只能
在标记为
async
的函数中使用
await
。
vkarpov15
2018-06-19