【发布时间】:2013-11-23 13:18:16
【问题描述】:
我正在尝试在 node 中制作简单的提要阅读器,但我在 node.js 中遇到了多个请求的问题。 例如,我得到了带有类似网址的表格:
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')。它弄得一团糟,我不知道如何处理。
【问题讨论】:
-
问题是什么?你想达到什么目的?
-
不要在数组上使用
for (x in y)!它不会像你想的那样!使用for (idx=0,len=array.length; idx < len; ++idx){value=array[idx]; ....}。 -
在一个循环中异步获取每个url的内容
-
这是一个重复的问题,在堆栈溢出时回答了很多次。
标签: javascript node.js