使用增量参数循环GET请求

时间:2016-11-30 07:22:00

标签: javascript node.js

我试图从很多页面(相同的页面,但不同的数据)获取数据。问题,我认为是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;   
    };

完成后,我从请求中获取所有数据,但没有订购,并且很多数组位置都是空的。

1 个答案:

答案 0 :(得分:2)

使用带回调而不是for循环的函数,只要日期不匹配就继续运行相同的函数,然后一次date = today,回调。

echo asset('storage/file_name.jpeg');

编辑:正如评论中所指出的,此示例中的请求将以串行方式执行。你可以修改一次运行它们的方法,但是你可能不应该尝试运行2000个并行请求,否则你将会遇到糟糕的时间!