user2137186
user2137186

Reputation: 837

reset Timer of setInterval()

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

I am trying to restart timer when ever chat.client.addMessage is executed.SetInterval is executed after every 5000ms until chat.client.addMessage is executed when ever that method is executed setInterval Function stops executing . Help will be appreciated:)

Upvotes: 5

Views: 22415

Answers (2)

Jae
Jae

Reputation: 81

you need to add a function that clears the interval and then restarts it

function resetInterval() {
  clearInterval(timer);

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

then you can simply call it as needed

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

Upvotes: 8

CodingIntrigue
CodingIntrigue

Reputation: 78535

You need to use clearInterval instead of clearTimeout as clearTimeout is the inverse of setTimeout. You can use it in the same manner:

clearInterval(timer);

Upvotes: 9

Related Questions