setInterval逐渐加快

时间:2017-08-28 13:14:14

标签: javascript time setinterval

给定一个setInterval,它的计时器能不能更快? 比如要运行的代码从2秒开始,然后是1.9s,1.8s,1.7s等......? (此时我并不担心达到零或负面。)

我目前有:

let speed = 2000;

let timer = setInterval(function() {
 display();
 faster();
 console.log(speed)
}, speed);

function faster() {
 speed -= 100;
}

function display(){
 // displays another square on canvas
}

我问是否可行,因为console.log显示速度确实降低了,但显示功能没有以更快的间隔调用;它总是每2秒调用一次。因此setInterval的速度不会越来越快......

1 个答案:

答案 0 :(得分:2)

没有。当计时器启动时,setInterval()速率固定为第二个参数的值。

您可以使用setTimeout()代替,在每次调用回调时重新建立计时器:

var rate = 100;
setTimeout(function callback() {
  // do something
  setTimeout(callback, rate - 10);
});