更改setTimeout值

时间:2017-09-22 03:36:57

标签: javascript settimeout

如何在控制台上更改setTimeout值?

2 个答案:

答案 0 :(得分:0)

您可以销毁当前超时

var timer;
$('#startTimer').click(function() {
    timer = setTimeout(function(){
        //...
    },5000)
});

$('#endTimer').click(function() {
    clearTimeout(timer);
    timer = setTimeout(function(){
        //...
    },0)
});

答案 1 :(得分:0)

如果我理解正确,您希望有办法立即执行该功能,而不是等待计时器到期。

您可以在click函数之外定义计时器功能,并将其作为参数注入。您还需要从click函数返回timerId,以便清除计时器。

这样的事情应该有效:

var delayed = function() {
  console.log("It happened late");
};

var click = function(a, b, delayed) {
  if(a !== b) {
    return setTimeout(delayed, 5000);
  }
  // If a and b are equal, we don't do anything
  return null;
};

var timerId = click(1, 2, delayed);
if(timerId) {
  clearTimeout(timerId);
  setTimeout(delayed, 0);
}

当你在控制台中运行它时,文本"它发生得太晚了#34;立即执行,并且没有延迟执行延迟功能。