PhantomJS によってデータをスクレイピングした関数にリンク パラメータを使用する一連のリンクがあります。この関数をシリアル化する方法は? これはステートメント用で、一度に 3 つの機能を並行して実行し、イベントエラーを受け取ります。
この場合、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();
});
});
});
});
};