Node.js 使用 async.mapLimit 和 axios 限制并发请求数量
以下是一个使用 Node.js 和 axios 的示例代码,使用 async.mapLimit 函数限制同时进行的请求数量,每次请求 5 个,一共进行 100 个请求:
const axios = require('axios');
const async = require('async');
// 定义需要请求的 URL 列表
const urlList = [];
for (let i = 1; i <= 100; i++) {
urlList.push('https://jsonplaceholder.typicode.com/posts/' + i);
}
// 定义每次请求的并发数量
const limit = 5;
// 使用 async.mapLimit 函数限制并发请求数量,每次请求 5 个
async.mapLimit(urlList, limit, async (url) => {
const response = await axios.get(url);
console.log(response.data);
});
在上面的示例代码中,首先定义了需要请求的 URL 列表,然后定义了每次请求的并发数量为 5。接着使用 async.mapLimit 函数对 URL 列表进行迭代,限制同时进行的请求数量,每次请求 5 个,并且使用 axios 发送 GET 请求获取响应数据。最后,将响应数据打印到控制台上。
该代码可以用于在 Node.js 中异步地并发请求多个 URL,并且限制同时进行的请求数量,以避免服务器过载和网络问题。
原文地址: https://www.cveoy.top/t/topic/ndrH 著作权归作者所有。请勿转载和采集!