我在javascript中设置和清除Timeout时遇到问题。 我想将var test2设置为var test的备份 但如果测试工作,我必须删除test2
var timeSec=2000;
var test = setTimeout(function() {
clearTimeout(test2);
jQuery('.next',curdoc)[0].click();
}, timeSec);
var test2 = setTimeout(function() {
// do something else
}, timeSec+timeSec);
答案 0 :(得分:2)
test
做的第一件事是清除test2
超时。这将在timeSec
之后发生。 test2
将永远不会被执行,因为它将在timeSec * 2
之后运行,但会在一半时间内被清除。
只有在成功执行test2
之后才能清除test
。
var timeSec=2000;
var test = setTimeout(function() {
jQuery('.next',curdoc)[0].click();
if(successful()) {
clearTimeout(test2);
}
}, timeSec);
var test2 = setTimeout(function() {
// do something else
}, timeSec+timeSec);
答案 1 :(得分:1)
为什么不试试try-catch?
var test = setTimeout(function() {
try {
jQuery('.next',curdoc)[0].click();
}
catch(err) {
setTimeout(function() {
alert('fallback');
}, timeSec+timeSec);
}
}, timeSec);