我正在努力处理 Node.js 中的异步事件。
我的应用程序正在执行第一个 HTTP GET 请求,然后根据在响应正文中找到的一些信息,它循环了一定次数。
在每次迭代中,它调用一个函数,该函数发送其他 HTTP GET 请求并返回推送到元素数组中的结果。
我的问题是,当所有 http 请求完成后,我想要console.log()
元素数组。这是我的代码:
http.get('mysite.com', function(res) {
var body = '';
res.on('data', function(chunk) {
body += chunk;
});
res.on('end', function() {
var last = 5,
elements = [];
for(var i=0; i < last; i++) {
elements.push(myRequest(i));
}
console.log(elements);
// Do some stuff with the elements array after it has been populated
});
}).on('error', function(error) {
console.log(error);
});
var myRequest = function(i) {
http.get('mysite.com/page' + i, function(res) {
var body = '';
res.on('data', function(chunk) {
body += chunk;
});
res.on('end', function() {
// Do parsing here
return parsed;
});
}).on('error', function(error) {
console.log(error);
});
};
我考虑过使用异步模块,但我不确定如何在这个用例中使用它。
提前致谢 !