我有一个非常棘手的任务,但是 NodeJS 的新手。
所以我需要遍历 URL 数组,从数组中获取每个页面,通过 jsdom+jquery 传递它并在数组末尾添加新找到的 URL。
乍一看,任务非常简单,但由于 NodeJS 的异步,它变成了噩梦。
现在我有类似的代码(为了更好地理解它被简化了)
var jsdom = require("jsdom");
var fs = require("fs");
var jquery = fs.readFileSync("./jquery.js").toString();
var fields = ['http://some.url/page.html']
for(var b=0, len = fields.length;b<len;b++){
jsdom.env({
html: fields[b],
src: [jquery],
done: function (errors, window) {
var $ = window.$;
$("div.pager a").each(function() {
//Push new finded hyperlinks in array
fields.push($(this).attr('href'));
});
}
});
//recalculate actual length of array to make more loop
len=fields.length;
}
并且由于 NodeJS 的概念,它的构造肯定是行不通的。有人可以建议如何将它变成现实生活吗?