reset setInterval()的定时器

use*_*186 5 javascript jquery

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

我试图重新启动计时器当过chat.client.addMessage是executed.SetInterval每5000毫秒,直到chat.client.addMessage执行后当过该方法被执行setInterval函数停止执行执行.帮助将不胜感激:)

Cod*_*gue 9

您需要使用clearInterval而不是clearTimeoutclearTimeout是setTimeout的反转.您可以以相同的方式使用它:

clearInterval(timer);
Run Code Online (Sandbox Code Playgroud)


小智 8

你需要添加一个清除间隔然后重新启动它的函数

function resetInterval() {
  clearInterval(timer);

  timer = setInterval(function() {
    console.log("restarted interval");
    test1();
   }, 5000); 
 }
Run Code Online (Sandbox Code Playgroud)

然后你可以根据需要简单地调用它

chat.client.addMessage = function(data) {
  resetInterval();
  test2(data);
};
Run Code Online (Sandbox Code Playgroud)