在setInterval/setTimeout中使用变量作为时间

Pan*_*osh 8 javascript jquery

这是一个示例情况.

var count,
    time = 1000;

setInterval(function(){
    count += 1;
}, time);
Run Code Online (Sandbox Code Playgroud)

上面的代码将"count"var加1,非常1000毫秒.似乎setInterval在被触发时将使用它在执行时看到的时间.如果稍后更新该值,则不会考虑这一点,并将继续使用设置的初始时间触发.

如何动态更改此方法的时间?

Ser*_*gio 12

使用setTimeout代替回调和变量而不是数字.

function timeout() {
    setTimeout(function () {
        count += 1;
        console.log(count);
        timeout();
    }, time);
};
timeout();
Run Code Online (Sandbox Code Playgroud)

在这里演示

更短的版本将是:

function periodicall() {
    count++;
    setTimeout(periodicall, time);
};
periodicall();
Run Code Online (Sandbox Code Playgroud)

  • 这个对我来说最有意义:) (5认同)