在Javascript中重新启动SetInterval

我清除间隔后很难重新启动时间到10秒。 当状态成功时,应该重新运行设置的间隔

以下是我的代码:

<code> var countdown = 10; var startTime = currTimer(); var myInterval = setInterval(function() { countdown--; if(countdown == 0){ var endTime = currTimer(); clearInterval(myInterval); countdown = 10; if (status == "success"){ setTimeout(function(){myInterval}, 200); } } io.sockets.emit('timer', { countdown: countdown }); }, 2000); </code> 

最好的方法是将函数保存在一个你可以传递给setInterval调用的variables中。 这样它就成为一个单一的,可重复的线条。

 var countdown = 10; var startTime = currTimer(); var onInterval = function() { countdown--; if(countdown == 0){ var endTime = currTimer(); clearInterval(myInterval); countdown = 10; if (status == "success"){ setTimeout(function(){ myInterval = setInterval(onInterval, 2000); }, 200); } } io.sockets.emit('timer', { countdown: countdown }); }; var myInterval = setInterval(onInterval, 2000);