有时在setTimeout
函数中,您希望在执行操作之前确保它不存在。
在执行 asetTimeout
时,清除/重新分配包含超时 ID 的变量是否有任何价值?怎么样setInterval
?
您会注意到在我的示例中timer1
执行 2 个日志,而timer2
没有。
function renderUtility(name, value) {
var el = document.createElement('p');
el.textContent = name + ": " + value
document.body.appendChild(el);
}
var timer1 = setTimeout(function() {
clearTimeout(timer1);
renderUtility('timer1', timer1);
if (timer1) renderUtility('timer1', "I exist");
}, 1000);
var timer2 = setTimeout(function() {
clearTimeout(timer2);
timer2 = null;
renderUtility('timer2', timer2);
if (timer2) renderUtility('timer2', "I exist");
}, 1000);