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.Highlights可能是异步但缺少异步修饰符的函数。如何使用await in =>?给我一些帮助。谢谢
答案 0 :(得分:3)
await doTheWrites();
关键字必须用于在其正文中使用等待的函数。
所以,将async
从async
移到checkDriver
:
addValidate
此外,checkDriver(mobile) {
// ...
}
async addValidate() {
// ...
let status = await this.checkDriver(this.form.mobile);
}
方法应该返回一个promise。因此,请将checkDriver
的内容更改为:
checkDriver
并且Promise返回的数据(本例中为axios)将被分配到checkDriver(mobile) {
return this.$axios({
url: "xxx",
method: "POST",
data: {
mobile: mobile
}
})
}
中的status
然后,如果你想处理错误,你应该将addValidate
调用包装在try / catch块中。
答案 1 :(得分:2)
addValidate() {
this.$refs['form'].validate( async (valid) => {
if (valid) {
let status = await this.checkDriver(this.form.mobile);
console.log(status);
} else {
return false;
}
});

您可以在参数
旁边添加缺少的async
关键字
答案 2 :(得分:0)
您必须使addValidate()
异步,例如async addValidate() { /* ... */ }
。您只能use await
in a function that's marked async
。