axios 請求是異步的侥啤,需要結(jié)合 async、await 一起使用才能實現(xiàn)同步請求
async functionA("參數(shù)") {
await 請求方法B("url",{parm:"參數(shù)"}).then(res=>{
//數(shù)據(jù)處理
});
await 請求方法C("url",{parm:"參數(shù)"}).then(res=>{
//數(shù)據(jù)處理
});
}
如上代碼茬故,請求方法B是異步的盖灸,結(jié)合 async、await 一起使用后磺芭,可以實現(xiàn)同步執(zhí)行赁炎,程序會先執(zhí)行“完請求方法B”,再去執(zhí)行“請求方法B”钾腺。
需要注意的是徙垫,上面的代碼只是針對 “functionA” 內(nèi)部寫了 await 關(guān)鍵字的請求方法才是同步執(zhí)行的讥裤,如果在其他方法調(diào)用 “functionA” ,那么 “functionA” 還是異步的姻报,如
functionB() {
for(let i = 0; i arr.length; i++) {
functionA(arr[i]);
}
}
上面的代碼己英,有可能先執(zhí)行 functionA(arr[1]),也有可能先執(zhí)行完functionA(arr[5]) ,如果要改成按數(shù)組下標順序執(zhí)行吴旋,也要結(jié)合 async剧辐、await 一起使用
async functionB() {
for(let i = 0; i arr.length; i++) {
await functionA(arr[i]);
}
}