2013-08-16 50 views
4
var timer; 
chat.client.addMessage = function (data) { 
    clearTimeout(timer); 
    test2(data); 
}; 
timer = setInterval(function() { 
    console.log("working"); 
    test1(); 
}, 5000); 

我試圖重啓定時器當過chat.client.addMessage是當過執行setInterval函數這種方法,直到執行chat.client.addMessage executed.SetInterval每5000毫秒後執行停止執行。幫助將不勝感激:)復位定時器()

回答

8

您需要使用clearInterval而不是clearTimeout作爲clearTimeout是setTimeout的倒數。您可以以同樣的方式使用它:

clearInterval(timer); 
+0

chat.client.addMessage執行後仍然沒有執行 – user2137186

+0

在這種情況下'chat.client.addMessage'可能沒有被調用。在那裏放一個'console.log'。 – CodingIntrigue

+0

它正在調用 – user2137186

8

你需要添加清除間隔的功能,然後重新啓動它

function resetInterval() { 
    clearInterval(timer); 

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

那麼你可以簡單地把它根據需要

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