在JavaScript中,使用request.js
发送多个并发请求,并使用Promise.all
来处理这些请求的结果可以通过以下方式实现:
首先,确保你已经安装了request.js
,如果没有,可以通过npm安装:
npm install request
然后,使用request.js
发送请求,并将每个请求返回的promise存储在一个数组中。最后,使用Promise.all
来等待所有请求完成:
const request = require('request');
// 模拟发送请求的函数
function sendRequest(url) {
return new Promise((resolve, reject) => {
request(url, (error, response, body) => {
if (error) {
reject(error);
} else {
resolve(body);
}
});
});
}
// 创建一个URL数组
const urls = [
'http://example.com/api/endpoint1',
'http://example.com/api/endpoint2',
'http://example.com/api/endpoint3'
];
// 创建一个promises数组来存储每个请求的promise
const promises = urls.map(url => sendRequest(url));
// 使用Promise.all来等待所有请求完成
Promise.all(promises).then(results => {
// 所有请求都成功完成时,这里的代码会被执行
console.log('All requests completed:', results);
}).catch(error => {
// 如果任何一个请求失败,这里的代码会被执行
console.error('An error occurred:', error);
});
在这个例子中,sendRequest
函数封装了对request.js
的调用,并返回一个新的promise。然后我们用一个数组映射URL数组,为每个URL创建一个promise,并将它们存储在promises
数组中。最后,我们使用Promise.all
来等待所有的promises完成,并处理结果或错误。