Javascript 每5次调用后执行间隔回调

Javascript 每5次调用后执行间隔回调,javascript,Javascript,我在页面上每隔6秒运行一次间隔;它很好地填充了一堆数据 但是,有一段数据仅每30秒从数据库更新一次。所以,我想等待执行这个回调,因为如果它事先执行,它会清除所有内容 下面的代码等待30秒,然后进行检查。我想要的是相反的:立即检查,然后等待30秒再检查 我觉得我的代码是下面的cloogy,有一个更优雅的解决方案(尽管我不认为do/while循环符合要求)。我错了吗 counter = 0; maxCounts = 5; function callbackForInterval(){ if

我在页面上每隔6秒运行一次间隔;它很好地填充了一堆数据

但是,有一段数据仅每30秒从数据库更新一次。所以,我想等待执行这个回调,因为如果它事先执行,它会清除所有内容

下面的代码等待30秒,然后进行检查。我想要的是相反的:立即检查,然后等待30秒再检查

我觉得我的代码是下面的cloogy,有一个更优雅的解决方案(尽管我不认为do/while循环符合要求)。我错了吗

counter = 0;
maxCounts = 5;

function callbackForInterval(){
    if(counter === maxCounts){
        if({data hasn't changed}){
            // wipe everything out!!!
        }else{
            // do some other stuff
        }
        counter = 0;
    }
    counter++;
}

谢谢你的帮助

您可以使用余数运算符(
%

这将在第一次迭代时运行代码。要仅从第5个开始运行,请将后增量更改为预增量

现场示例:

var计数器=0;
函数callbackForInterval(){
如果(计数器+++%5==0){
log(“大刻度”);
//此位仅每5次迭代运行一次
}否则{
log(“小记号”);
}
}
var timer=setInterval(callbackForInterval,500);
setTimeout(函数(){
log(“完成”);
清除间隔(计时器);
}, 30000);
log(“(30秒后停止)”

var counter = 0;
function callbackForInterval)( {
    if (counter++ % 5 === 0) {
        // This bit only runs every 5 iterations
    }
}