Node.js 批量请求 API:使用 async.queue 实现请求队列
可以使用 async 库中的 queue 方法来实现请求队列,具体代码如下:
const async = require('async');
const axios = require('axios');
// 定义请求队列
const requestQueue = async.queue((task, callback) => {
axios.get(task.url)
.then(response => {
console.log(response.data);
callback();
})
.catch(error => {
console.error(error);
callback();
});
}, 5); // 设置每次同时请求 5 个
// 添加请求任务到队列
for (let i = 0; i < 100; i++) {
const task = {
url: `https://example.com/api/${i}`
};
requestQueue.push(task);
}
以上代码中,先定义了一个请求队列,使用 async.queue 方法创建,设置每次同时请求 5 个。然后通过循环向队列中添加 100 个请求任务,每个任务都包括一个请求的 url。最后通过调用 requestQueue.push 方法将任务添加到队列中,队列会自动处理任务。每次处理一个任务时,会调用请求函数,请求成功或失败后再调用 callback 回调函数,以便队列继续处理下一个任务。
原文地址: https://www.cveoy.top/t/topic/ndnM 著作权归作者所有。请勿转载和采集!