Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/403.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript setInterval()的重置计时器_Javascript_Jquery - Fatal编程技术网

Javascript setInterval()的重置计时器

Javascript setInterval()的重置计时器,javascript,jquery,Javascript,Jquery,我正在尝试在执行ever chat.client.addMessage时重新启动计时器。SetInterval每隔5000毫秒执行一次,直到执行了ever chat.client.addMessage时,SetInterval函数停止执行。帮助将不胜感激:)您需要使用而不是clearTimeout,因为clearTimeout与之相反。您可以以相同的方式使用它: var timer; chat.client.addMessage = function (data) { clearT

我正在尝试在执行ever chat.client.addMessage时重新启动计时器。SetInterval每隔5000毫秒执行一次,直到执行了ever chat.client.addMessage时,SetInterval函数停止执行。帮助将不胜感激:)

您需要使用而不是
clearTimeout
,因为clearTimeout与之相反。您可以以相同的方式使用它:

 var timer;
 chat.client.addMessage = function (data) {
     clearTimeout(timer);
     test2(data);
 };
 timer = setInterval(function () {
     console.log("working");
     test1();
 }, 5000);  

您需要添加一个函数来清除间隔,然后重新启动它

clearInterval(timer);
然后,您可以根据需要简单地调用它

function resetInterval() {
  clearInterval(timer);

  timer = setInterval(function() {
    console.log("restarted interval");
    test1();
   }, 5000); 
 }

在chat.client.addMessage执行之后仍然没有执行它。在这种情况下,
chat.client.addMessage
可能不会被调用。在那里放一个
console.log
,那么你的问题就不是setInterval/clearInterval了。这里有一个小把戏在起作用:当我移除这个cleatInterval(定时器)功能时。每件事情都很好,但是setInterval time显然没有在聚会上晚一点重置,但是
clearInterval
clearTimeout
是(它们不应该互换使用)。不确定为什么这是公认的答案,因为它似乎没有回答OP的问题。
chat.client.addMessage = function(data) {
  resetInterval();
  test2(data);
};