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