例如,我设置的间隔就像
timer = setInterval(fncName, 1000);
如果我去做
clearInterval(timer);
它确实清除了间隔,但有没有办法检查它是否清除了间隔?我已经尝试在它有间隔的时候得到它的值,当它没有时,但它们似乎都只是数字.
Cas*_*Chu 112
没有直接的方法来做你想要的.相反,timer每次调用时都可以设置为false clearInterval:
// Start timer
var timer = setInterval(fncName, 1000);
// End timer
clearInterval(timer);
timer = false;
现在,timer要么是假的,要么在给定时间有值,所以你可以简单地检查一下
if (timer)
    ...
如果要将其封装在类中:
function Interval(fn, time) {
    var timer = false;
    this.start = function () {
        if (!this.isRunning())
            timer = setInterval(fn, time);
    };
    this.stop = function () {
        clearInterval(timer);
        timer = false;
    };
    this.isRunning = function () {
        return timer !== false;
    };
}
var i = new Interval(fncName, 1000);
i.start();
if (i.isRunning())
    // ...
i.stop();
来自setTimeout和的返回值setInterval是完全不透明的值.你无法从中得出任何意义; 他们唯一的用途就是回到clearTimeout和clearInterval.
没有功能可以测试一个值是否对应于活动超时/间隔,对不起!如果你想要一个可以检查其状态的计时器,你必须创建自己的包装函数,记住设置/清除状态.
| 归档时间: | 
 | 
| 查看次数: | 56496 次 | 
| 最近记录: |