首页 > 代码库 > js精准时间迭代器(定时器)

js精准时间迭代器(定时器)

window.setMyInterval = function(func, interval){
    var nexttime    = interval;
    var start        = new Date().getTime();
    var now            = null;
    var toffset        = 0;
    
    var i            = 0;

    var gogogo = function(){
        window.setTimeout(function(){
            i++;
            now            = new Date().getTime();
            toffset        = now - (start + i * interval);
            nexttime    = interval - toffset;

            func();

            gogogo();
        }, nexttime);
    };

    gogogo();
}

 

使用示例:

window.setMyInterval(function(){
    console.log(new Date().toLocaleString());
}, 2000);

 

js精准时间迭代器(定时器)