在我的代码中,我一直致力于使用节点发送异步HTTP请求,并已收到相关页面的响应。我能够在我的代码中的任何地方打印,所以我确信我所做的条件得到满足,并且代码正常运行。
但是,当我致电console.log(array)
时,[]
会被退回给我。在我看来,这是在其他代码(即添加到数组中的项目)之前发生的。在以前版本的代码中,我能够打印[]
,但也包含console.log(array.length)
和此打印件,并且可以看到数组的大小逐渐增加。
有人能为我提供潜在的解决方案吗?
我的代码如下:
var http = require('http');
var most = 25;
var array = [];
function mainfunc(pg) {
if (pg >= most) {
console.log(array);
return;
}
var site = {
host: '[redacted]',
path: '/json?Page=' + pg
};
http.request(site, function(response) {
var stc = []
response.on('data', function (chunk) {
stc.push(chunk);
});
response.on('end', function() {
var no = Buffer.concat(stc).toString();
try {
var no2 = JSON.parse(no)
} catch (e) {
console.log('Error on ' + pg)
}
for (i in no2) {
array.push(no2[i].Id);
};
});
}).end();
};
for (var g = 1; g < 25; g++) {
mainfunc(g);
}