我有以下代码片段:
if (someCondition) {
// clear globTimer first??
globTimer = setInterval(function() {
someBlinkingCode;
}, 1000);
} else {
clearInterval(globTimer);
}
但是这部分代码可以多次调用,someCondition
为真。这意味着将创建多个间隔,并且不会销毁所有间隔。经过一段时间后,眨眼频率超过1秒,所以我添加了clearInterval(globTimer);
而不是评论。这个改变解决了我的问题,但这个解决方案还可以吗?是否可以为同一个变量拨打clearInterval()
次或为undefined
拨打电话?
答案 0 :(得分:10)
是的,可以使用“无效”标识符来调用clearInterval
(和clearTimeout
)。 The specification说:
clearInterval()方法必须从调用方法的WindowTimers对象的活动间隔列表中清除标识为句柄的条目,其中handle是传递给方法的参数(如果有)。 (如果句柄未标识调用该方法的WindowTimers对象的活动间隔列表中的条目,则该方法不执行任何操作。)
(强调我的)