0

我在javascript中设置和清除超时有问题。我想将 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);
4

2 回答 2

2

首先要做的test是清除test2超时。这将在 之后发生timeSectest2永远不会被执行,因为它会在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);
于 2016-04-01T13:41:36.283 回答
1

你为什么不试试try-catch

var test = setTimeout(function() {
          try {
            jQuery('.next',curdoc)[0].click();
          }
          catch(err) {
            setTimeout(function() {
              alert('fallback');
            }, timeSec+timeSec);
          }
    }, timeSec);
于 2016-04-01T13:55:48.380 回答