vue使用axios同步请求的方法
2023-03-21 本文已影响0人
沁园Yann
axios 请求是异步的,需要结合 async、await 一起使用才能实现同步请求
async functionA("参数") {
await 请求方法B("url",{parm:"参数"}).then(res=>{
//数据处理
});
await 请求方法C("url",{parm:"参数"}).then(res=>{
//数据处理
});
}
如上代码,请求方法B是异步的,结合 async、await 一起使用后,可以实现同步执行,程序会先执行“完请求方法B”,再去执行“请求方法B”。
需要注意的是,上面的代码只是针对 “functionA” 内部写了 await 关键字的请求方法才是同步执行的,如果在其他方法调用 “functionA” ,那么 “functionA” 还是异步的,如
functionB() {
for(let i = 0; i arr.length; i++) {
functionA(arr[i]);
}
}
上面的代码,有可能先执行 functionA(arr[1]),也有可能先执行完functionA(arr[5]) ,如果要改成按数组下标顺序执行,也要结合 async、await 一起使用
async functionB() {
for(let i = 0; i arr.length; i++) {
await functionA(arr[i]);
}
}