2 回答

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超10個(gè)贊
您可以為此使用Promise.all:
this.allMyFacilities = response[1].data
const promises = this.allMyFacilities.map((myFacility) => {
return axios
.get(facilityUsed(myFacility.id))
.then((response) => {
this.facilitiesOnSupplyChain[myFacility.id] = response.data
return response.data;
}).catch((err) => {
// An error will also be thrown if you use cancel.
console.error(err)
});
});
Promise.all(promises).then((allResponsesArray) => /* do sth */)

TA貢獻(xiàn)2021條經(jīng)驗(yàn) 獲得超8個(gè)贊
假設(shè)所有異步調(diào)用都可以獨(dú)立進(jìn)行,您可以利用該P(yáng)romise.all功能來(lái)實(shí)現(xiàn)這一點(diǎn)。
this.allMyFacilities = response[1].data
await Promise.all(this.allMyFacilities.map(myFacility) => {
return axios.get(facilityUsed(myFacility.id))
.then(data => this.facilitiesOnSupplyChain[myFacility.id] = data);
});
這將允許您axios并行執(zhí)行所有調(diào)用,從而減少整個(gè)過(guò)程的總體執(zhí)行時(shí)間。
PS:我已經(jīng)寫(xiě)了一個(gè)await聲明,假設(shè)你將把這個(gè)功能包裝在一個(gè)async函數(shù)中。
添加回答
舉報(bào)