試試這個,應該工作。您可能想要嘗試使用mapLimit來限制並行請求或mapSeries的順序執行。
var async = require('async');
var request = require('request');
async.map(['url1', 'url2'], function(item, callback){
request(item, function (error, response, body) {
callback(error, body);
});
}, function(err, results){
console.log(results);
});
你的例子我需要看看你的get_options函數。它是同步的嗎?如果是的話,你可以做到這一點
var async = require('async');
var request = require('request');
var options;
async.map([item1, item2], function(item, callback){
options = get_options(item);
request(options, function (error, response, body) {
callback(error, body);
});
}, function(err, results){
console.log(results);
});
如果您get_options是異步的,接受回調做以下操作:
var async = require('async');
var request = require('request');
async.map([item1, item2], function(item, callback){
get_options(item, function(err, option){
if(err) {
callback(err);
}
else{
request(options, function (error, response, body) {
callback(error, body);
});
}
});
}, function(err, results){
console.log(results);
});
您可能想要使用異步庫。 – Yalamber
您如何看待韓國的問題? –
@askkirati,正如我在我的問題中提到的,我知道異步模塊,但我不明白如何以並行方式創建請求並將結果獲取到數組中。如果您知道如何做到這一點,請將其添加爲答案。 – tldr