【发布时间】:2019-04-30 09:07:04
【问题描述】:
所以我正在尝试编写一个每 1 小时执行一次的计时器。第一个 setInterval 应该从 Web API 获取项目列表,然后下一个计时器将每秒执行一次,在该计时器中,您单独检查每个项目并在需要时进行另一个查询。第二个计时器将在到达列表末尾时结束,并在下一个小时当第一个 setInterval 正在执行时再次开始。为什么我首先需要 2 个计时器?简单地说,我需要第二个不打破 API 查询限制。
我的看法是这样的:
setInterval(function ()
{
var counter = 0;
var returnCode;
var getUrl = "url";
returnCode = httpGet(getUrl);
var object = JSON.parse(returnCode);
function httpGet(url){
var response = requestSync(
'GET',
url, (err, res, body) => {
if(err)
{
return;
}
});
return response.body;
}
setInterval(function ()
{
//Do some more stuff with data here
if(!object || typeof object.data[counter] === 'undefined')
{
return; //this should end the second setInterval until the first one is activated again
}
counter++;
}, 1000);
}, 3600000);
我知道它不能像那样工作,因为计数器是局部变量,列表也是如此,但我不知道如何让它工作。有什么想法吗?
【问题讨论】:
标签: node.js timer settimeout