reset setInterval()的定时器

时间:2013-08-16 09:23:21

标签: javascript jquery

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

我正在尝试在执行chat.client.addMessage时重新启动计时器。每隔5000毫秒执行一次。在执行该方法时执行chat.client.addMessage之前执行setInterval setInterval函数停止执行。帮助将不胜感激:)

2 个答案:

答案 0 :(得分:9)

您需要使用clearInterval代替clearTimeout,因为clearTimeout是setTimeout的倒数。您可以以相同的方式使用它:

clearInterval(timer);

答案 1 :(得分:8)

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

function resetInterval() {
  clearInterval(timer);

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

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

chat.client.addMessage = function(data) {
  resetInterval();
  test2(data);
};