js 渐进式调用接口如何实现?
场景:js vue 1000个 ajax 接口代码如何实现 先调用 5个接口 5个接口都有响应了(成功或失败)在调用5个接口,直到将1000个接口全部请求
回复
1个回答

test
2024-07-13
可以使用循环和递归的方式来实现渐进式调用接口:
// 将要调用的接口列表
const apiList = [ '/api/1', '/api/2', '/api/3', '/api/4', '/api/5', '/api/6', '/api/7', '/api/8', '/api/9', '/api/10'];
// 每次调用的接口数量
const batchSize = 5;
async function callApi(apiList) {
// 取出本次要调用的接口列表
const currentBatch = apiList.splice(0, batchSize);
try {
// 调用接口
await Promise.all(currentBatch.map(api => axios.get(api)));
// 如果还有剩余的接口,则递归调用
if (apiList.length > 0) {
callApi(apiList);
}
} catch (error) {
console.error(error);
}
}
// 开始调用
callApi(apiList);
上面的代码使用了 Promise.all 调用多个接口,并使用递归的方式来实现渐进式调用。每次调用时,会从接口列表中取出一定数量的接口进行调用,然后等待所有接口的响应,如果还有剩余的接口,就再次递归调用,直到所有接口都被调用完毕。
回复

适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容