3 回答
TA贡献1831条经验 获得超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);
});
假设我们希望许多 Promise 并行执行并等待它们都准备好。
例如,并行下载多个 URL 并在完成后处理内容。
来自https://javascript.info/promise-api
TA贡献1853条经验 获得超18个赞
假设您允许n在任何给定时间发送最大请求。为了这个例子,我假设它是 10:
var n = 10;
我们还存储当前索引:
var index = 0;
让我们实现一个函数来处理请求:
function req() {
axios.get(`myapi.com/user/${input[index]}`).then(({ data }) => {
console.log(data.name);
if (index + 1 < input.length) {
index++;
req();
}
});
}
然后,让我们发送第一个n请求:
while (index < n) {req(); index++}
是的,index是全局的,但为了便于阅读,它是全局的。
添加回答
举报