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

use*_*454 7 javascript

我有以下代码片段:

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

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

Jam*_*rpe 10

是的,可以使用"无效"标识符调用clearInterval(和clearTimeout). 规范说:

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

(强调我的)