3 回答

TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超4個贊
而不是使用forEach
in id 嘗試Promise.all
const ids = [12, 32, 657, 1, 67];
const promises = ids.map((id) => axios.get(`myapi.com/user/${id}`));
Promise.all([...promises]).then(function (values) {
console.log(values);
});
假設(shè)我們希望許多 Promise 并行執(zhí)行并等待它們都準(zhǔn)備好。
例如,并行下載多個 URL 并在完成后處理內(nèi)容。
來自https://javascript.info/promise-api

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超18個贊
假設(shè)您允許n在任何給定時間發(fā)送最大請求。為了這個例子,我假設(shè)它是 10:
var n = 10;
我們還存儲當(dāng)前索引:
var index = 0;
讓我們實(shí)現(xiàn)一個函數(shù)來處理請求:
function req() {
axios.get(`myapi.com/user/${input[index]}`).then(({ data }) => {
console.log(data.name);
if (index + 1 < input.length) {
index++;
req();
}
});
}
然后,讓我們發(fā)送第一個n請求:
while (index < n) {req(); index++}
是的,index是全局的,但為了便于閱讀,它是全局的。
添加回答
舉報