Я пытаюсь сделать простой читатель каналов в node, и я столкнулся с проблемой с несколькими запросами в node.js. Например, я получил таблицу с URL-адресами примерно так:
urls = [
"http://url1.com/rss.xml",
"http://url2.com",
"http://url3.com"];
Теперь я хочу получить содержимое каждого URL-адреса. Первая идея заключалась в использовании for(var i in urls)
, но это не очень хорошая идея. лучшим вариантом было бы сделать это асинхронно, но я не знаю, как это сделать.
Любые идеи?
EDIT:
Я получил этот код:
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'). Это создает беспорядок, и я не знаю, как с этим справиться.