Node.js 并发请求 Axios: 使用 Async.mapLimit 限制并发数量
Async.mapLimit 是 async 库中的一个函数,用于限制并发请求的数量。Axios 是一个基于 Promise 的 HTTP 客户端,可以在 Node.js 和浏览器中使用。结合这两个工具,可以实现并发请求 Axios。
以下是一个使用 Async.mapLimit 和 Axios 的示例代码:
const async = require('async');
const axios = require('axios');
// 定义请求 URL 和参数
const urls = [
{ url: 'https://jsonplaceholder.typicode.com/posts/1', method: 'get' },
{ url: 'https://jsonplaceholder.typicode.com/posts/2', method: 'get' },
{ url: 'https://jsonplaceholder.typicode.com/posts/3', method: 'get' },
{ url: 'https://jsonplaceholder.typicode.com/posts/4', method: 'get' },
{ url: 'https://jsonplaceholder.typicode.com/posts/5', method: 'get' }
];
// 设置并发请求数量为 2
const limit = 2;
// 使用 async.mapLimit 进行并发请求
async.mapLimit(urls, limit, async function (item) {
const { url, method } = item;
const response = await axios({ url, method });
return response.data;
}, function (err, results) {
if (err) {
console.error(err);
} else {
console.log(results);
}
});
以上代码将会同时发起两个请求,等一个请求完成后再发起下一个请求,直到请求完成。最终的结果会被返回到回调函数中,可以根据需要进行处理。
原文地址: https://www.cveoy.top/t/topic/ndpS 著作权归作者所有。请勿转载和采集!