ノードで単純なフィード リーダーを作成しようとしていますが、node.js での複数のリクエストに関する問題に直面しています。たとえば、次のような URL を持つテーブルを取得しました。
urls = [
"http://url1.com/rss.xml",
"http://url2.com",
"http://url3.com"];
次に、各 URL のコンテンツを取得します。最初for(var i in urls)
のアイデアは使用することでしたが、それは良い考えではありません。最良の選択肢は非同期で行うことですが、その方法がわかりません。
何か案は?
編集:
私はこのコードを得ました:
var data = [];
for(var i = 0; i<urls.length; i++){
http.get(urls[i], function(response){
console.log('Reponse: ', response.statusCode, ' from url: ', urls[i]);
var body = '';
response.on('data', function(chunk){
body += chunk;
});
response.on('end', function() {
data.push(body);
});
}).on('error', function(e){
console.log('Error: ', e.message);
});
}
問題は、最初にループ内の各要素に対して行 "http.get..." が呼び出され、その後にイベント response.on('data') が呼び出され、その後に response.on('end') が呼び出されることです。それは混乱を引き起こし、私はこれを処理する方法がわかりません。