我有一个 URL 列表,比如说 4 个。对于每个我想抓取一些信息并将信息存储到一个名为 allData 的全局变量中。所以我的代码如下所示:
var request = require('request');
var cheerio = require('cheerio');
var urls = [url1,url2,url3,url4];
var allData = [];
for(var url in urls){
request(url, function(err,response,body){
var $ = cheerio.load(body);
var data = $('h1.large','#title_main').text();
allData.push(data);
});
}
但是,我意识到由于使用请求的异步性质,这将不起作用。在最后一个循环中,“datas”中的所有数据都是相同的,并且来自url4。知道如何解决这个问题吗?确实需要这个功能。