Javascript 如何在promise-Vue中使用异步/等待
以下是我的方法:Javascript 如何在promise-Vue中使用异步/等待,javascript,vue.js,Javascript,Vue.js,以下是我的方法: async sendEmail() { this.isActive = true this.$validator.validate().then(result => { if (result) { await axios.post('url', data) this.isActive = false } }) } 我在isActive=true时显示加载程序,但在中使用await。$validator向我抛出一个关于单
async sendEmail() {
this.isActive = true
this.$validator.validate().then(result => {
if (result) {
await axios.post('url', data)
this.isActive = false
}
})
}
我在isActive=true
时显示加载程序,但在中使用await
。$validator
向我抛出一个关于单词await
的错误。为了验证,我使用
如何在
$validator
promise中使用wait?在非异步函数中不能直接使用wait
关键字。您直接在匿名函数中使用wait
关键字,该函数是then
的参数;此匿名函数不是异步的,因此存在语法错误
下面是我将如何重写此函数:
async sendEmail() {
this.isActive = true
let result = await this.$validator.validate();
if (result) await axios.post('url', data);
this.isActive = false;
}
我发现当您已经在异步
函数中时,避免使用然后
会更干净
顺便说一句,我不确定
数据
变量的定义位置。不能在非异步函数中直接使用wait
关键字。您直接在匿名函数中使用wait
关键字,该函数是then
的参数;此匿名函数不是异步的,因此存在语法错误
下面是我将如何重写此函数:
async sendEmail() {
this.isActive = true
let result = await this.$validator.validate();
if (result) await axios.post('url', data);
this.isActive = false;
}
我发现当您已经在异步
函数中时,避免使用然后
会更干净
顺便说一句,我不确定在哪里定义了
数据
变量。只能在async
函数中使用wait
。因此,尝试将其更改为:this.$validator.validate()。然后(异步(结果)=>{}
@adiga,没有错误,但它不能按预期工作。在axios请求后,它应该将isActive
设置为false,但isActive
始终为true。您只能在async
函数中使用wait
。因此,尝试将其更改为:this.$validator.validate()。然后(async(result)=>{
@adiga,没有错误,但它不能按预期工作。在axios请求后,它应该将isActive
设置为false,但isActive
始终为true。data
已定义,没有问题。现在它可以工作了,谢谢。顺便问一句,在async
函数中使用try{}catch{}
可以吗?例如如果(结果){try{…}catch{…}}
Yestry
和catch
将完全按照您的预期工作!data
已定义,没有问题。现在它可以工作了,谢谢。顺便问一下,在if(result){try}catch}函数中使用try{}catch{code>可以吗
Yestry
和catch
将完全按照您的预期工作!