如何让定时器能定时改变自身的时间间隔?

时间:2020-11-26 23:30:45

需求:

设置一个计时器,它的时间是可以变化的,如下(a是可以变化的):

var a = 100;

var timer = setInterval(function() {

                a += 1000;
                console.log(a);
            }, a);
如果像上面这样写的,看上去是可以实现的,但是不能达到我们需要的效果,原因就是定时器在生成的那一刻,属性已经确定了,不能再改变,除非我们重新生成一个新的定时器;

方法如下:

var a = 100;
        
        (function resetTimer() {
            var timer = setInterval(function() {
                a += 1000;
                console.log(a);
                resetTimer();
                clearInterval(timer);
            }, a);
        })();

调用自身函数,这样就能实现以上需求。