给定一个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的速度不会越来越快......
答案 0 :(得分:2)
没有。当计时器启动时,setInterval()
速率固定为第二个参数的值。
您可以使用setTimeout()
代替,在每次调用回调时重新建立计时器:
var rate = 100;
setTimeout(function callback() {
// do something
setTimeout(callback, rate - 10);
});