我试图从很多页面(相同的页面,但不同的数据)获取数据。问题,我认为是Node的异步请求方法和'for'循环。 (我是nodejs的新手。)
我使用for循环来使用请求获取JSON数据,但是在我收到请求的第一个响应之前循环结束(我认为)。
这是代码,我每天都会使用JSON:
var str = [];
for (var i = 0; i < 2000; i++) {
var url = 'https://WEbPAGE.com/public?start='+prevDate+'&end='+nextDate;
request(url, (error, response, body)=> {
if (!error && response.statusCode === 200) {
str.push(body+'\r\n')
}
})
prevDate = nextDate;
nextDate += oneDay;
if (nextDate >= today) break;
};
完成后,我从请求中获取所有数据,但没有订购,并且很多数组位置都是空的。
答案 0 :(得分:2)
使用带回调而不是for循环的函数,只要日期不匹配就继续运行相同的函数,然后一次date = today,回调。
echo asset('storage/file_name.jpeg');
编辑:正如评论中所指出的,此示例中的请求将以串行方式执行。你可以修改一次运行它们的方法,但是你可能不应该尝试运行2000个并行请求,否则你将会遇到糟糕的时间!