如何在nodejs中执行两个函数之间等待

时间:2015-11-03 07:03:28

标签: javascript node.js webpagetest

这是我的代码,在wpt.runtest函数中我正在点击一些url并获取url作为响应,现在我将在我的请求函数中使用此url,但我需要等待一段时间,因为它需要一些时间才能获得数据可在请求模块中使用的URL中找到。



wpt.runTest('http://some url ',function(err, data) {
        //console.log("hello -->",err || data);

        data_url = data.data.summaryCSV;
        console.log(data_url);
        console.log('-----------');
        console.log(data_url);
        console.log('-----------');

        request({uri:data_url,method:'GET'}, function (error, response,body)  {
            console.log('----@@@@@@----');
            console.log(response.headers);
            console.log('----@@@@@@----');
            //console.log(response);
            if (error) {
                console.log('got an error' + error);
            }
            //console.log(response);
            //console.log(body);
            var data = body;
            console.log('here is the body' + body);




我想要的是,在我的请求函数执行之前应该有一个时间间隔或暂停,我该如何实现这个

1 个答案:

答案 0 :(得分:0)

上述问题可以通过

解决

使用settimeout

wpt.runTest('http://some url ',function(err, data) {
        //console.log("hello -->",err || data);

        data_url = data.data.summaryCSV;
        console.log(data_url);
        console.log('-----------');
        console.log(data_url);
        console.log('-----------');
        var delay = 5000;
        settimeout(function(){
             request({uri:data_url,method:'GET'}, function (error, response,body){
              // handle error and response
             }
        }, delay);
});

使用Cron

如果您对此特定问题有一些扩展案例,这将非常有用。例如,您需要在不同时间跟踪资源,让我们说每小时或每天。如果你期待这样的情况,那么考虑Cron会有所帮助。

使用cron执行的步骤:

  1. 使用cron pattern注册一个cron。
  2. 启动cron。
  3. 当pattern评估为true时,将执行您提供的函数。将您的实现(使用request库请求资源)放在提供的函数中。
  4. nodejs中cron的帮助程序库是Lib1Lib2

    示例lib1lib2