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

How to put a wait in between the execution of two functions in nodejs

这是我的代码,在 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);

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

以上问题可以通过

解决

使用 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.
  2. 注册一个 cron
  3. 启动 cron。
  4. 当 pattern 的计算结果为真时,您提供的函数将被执行。将您的实现(使用 request 库请求资源)放在提供的函数中。

nodejs 中 cron 的帮助库是 Lib1, Lib2

例子lib1, lib2