可以在setInterval()之前调用clearInterval()吗?

时间:2015-10-23 14:15:15

标签: javascript

我有以下代码片段:

if (someCondition) {
    // clear globTimer first??
    globTimer = setInterval(function() {
        someBlinkingCode;
    }, 1000);
} else {
    clearInterval(globTimer);
}

但是这部分代码可以多次调用,someCondition为真。这意味着将创建多个间隔,并且不会销毁所有间隔。经过一段时间后,眨眼频率超过1秒,所以我添加了clearInterval(globTimer);而不是评论。这个改变解决了我的问题,但这个解决方案还可以吗?是否可以为同一个变量拨打clearInterval()次或为undefined拨打电话?

1 个答案:

答案 0 :(得分:10)

是的,可以使用“无效”标识符来调用clearInterval(和clearTimeout)。 The specification说:

  

clearInterval()方法必须从调用方法的WindowTimers对象的活动间隔列表中清除标识为句柄的条目,其中handle是传递给方法的参数(如果有)。 (如果句柄未标识调用该方法的WindowTimers对象的活动间隔列表中的条目,则该方法不执行任何操作。

(强调我的)