案例:vue页面初始数据时用到了网络数据,需要等待全部加载完再进行下一步操作
解决方案:使用async/await 来确保网络请求完成后再继续执行,如果有多个函数需要全部完成可以使用Promise.all
示例:
async created() {
await Promise.all([
this.getData1(),
this.getData2()
]);
// 之后的操作
console.log("初始化成功");
},
等待执行函数中一定要返回Promise,否则结果会错误,以axios请求为例:
getData1() {
return axios.get(url)
.then(res=> {
//相关操作
return res;
})
.catch(err=> {
//相关操作
throw err;
});
}