gpt4 book ai didi

javascript - 如何在 Vue.js 中使用异步/等待?

转载 作者:搜寻专家 更新时间:2023-10-30 22:18:55 28 4
gpt4 key购买 nike

我是 ES7 新手

我想在 Vue.js 中使用 async/await

这是我的代码

created (){
this.getA()
console.log(2)
this.getB()
},
methods : {
getA (){
console.log(1)
},
getB (){
console.log(3)
}
}

返回

1
2
3

但是当我将它与 axios 一起使用时,那么

created (){
this.getA()
console.log(2)
this.getB()
},
methods : {
getA (){
$axios.post(`/getA`,params){
.then((result) => {
console.log(1)
})
},
getB (){
console.log(3)
}
}

返回

2
3
1

所以我想在该代码中添加 async/await。

如何使用异步/等待?

我试过了

async created (){
await this.getA()
console.log(2)
await this.getB()
},
methods : {
getA (){
$axios.post(`/getA`,params){
.then((result) => {
console.log(1)
})
},
getB (){
console.log(3)
}
}

它返回相同的结果。

最佳答案

您必须使用 thenawait,但不能同时使用,如下所示:

如果使用 then

created () {
this.getA().then((result) => {
console.log(1)
console.log(2)
this.getB()
})
},
methods : {
getA () {
return $axios.post(`/getA`,params);
},
getB (){
console.log(3)
}
}

如果使用await

async created (){
await this.getA()
console.log(1)
console.log(2)
this.getB()
},
methods : {
getA : async() => {
return $axios.post(`/getA`,params);
},
getB : () => {
console.log(3)
}
}

请注意,在调用 getB() 时,您不需要 thenawait,因为它不是异步的

关于javascript - 如何在 Vue.js 中使用异步/等待?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54955426/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com