我有一个链接数组,它们使用链接参数来获取由 PhantomJS 抓取数据的函数。如何序列化这个功能?这对于statemant 一次运行 paralely 3 功能,我收到一个事件错误。
在这种情况下,使用async是正确的,但它如何串联使用?运行函数的时间总是不同的,但是async应该如何理解它已经完成并从新 URL 开始?
var phantom = require('phantom')
, async = require('async');
var urls = [
'http://en.wikipedia.org/wiki/Main_Page',
'http://es.wikipedia.org/wiki/Wikipedia:Portada',
'http://de.wikipedia.org/wiki/Wikipedia:Hauptseite'
];
async.mapSeries(urls, getTitle, function(err, result){
console.log(result);
})
function getTitle (link, callback) {
phantom.create(function(ph) {
return ph.createPage(function(page) {
return page.open(link, function(status) {
return page.evaluate((function() {
return document.title;
}), function(result) {
callback(null, result);
return ph.exit();
});
});
});
});
};