【发布时间】:2018-02-05 18:43:24
【问题描述】:
给定一个 setInterval,它的计时器是否可以越来越快? 比如要运行的代码从 2 秒开始,然后是 1.9 秒、1.8 秒、1.7 秒等......? (此时我并不担心达到零或负数。)
我目前有:
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 的速度并没有变快....
【问题讨论】:
-
您是否尝试过使用
setTimeout而不是setInterval并从计时器回调方法中调用timer? -
不,您不能更改运行间隔的间隔计时器。你必须清除当前的并开始一个新的 - 或者使用 setTimeout 开始,如果你想在任何给定的时间间隔内只执行一次。
标签: javascript time setinterval