我试图尽快提取一条信息。它可以首先在4个不同的网站上提供,所以我为每个URL创建了正则表达式,我可以找到这些信息并将这些值存储在一个数组中:
var sources = [{
url: URL1
regex: REGEX1
},
{
url: URL2
regex: REGEX2
}, etc.];
然后我用for循环遍历这些,并希望一次测试一个信息。这个for循环设置为30秒间隔,所以我希望每30秒测试一次所有网站。
for (var i = 0; i < data.sources.length; i++)
{
var source = data.sources[i];
var url = source.url;
var regex = source.regex;
// this is npm request
request(url, function(error, response, html)
{
//EDIT INCLUDED HERE: HIGH-LEVEL OVERVIEW
->check to see if data has been updated
->if yes, use the capturing regex groups to enter data into MySQL table
}
}
问题是,因为请求是一个回调函数(或者具有回调函数?),正则表达式和url被覆盖,然后才能完成任何操作。因此请求将触发,我将获得有效的HTML,但然后将regex设置为对该URL无效的值。我需要帮助提出两种解决方案之一: