函数中的clearInterval

时间:2018-09-19 11:56:48

标签: function clearinterval

我正在尝试设置和清除具有两种功能的轮播的间隔:res.sendplayX

stopX

尽管它被启动,并且不断地运行,但是即使被调用,它也不会停止:

var timerX; 

function playX (timerX, B, C, D, E) {    
setInterval(function() { away(timerX, B, C, D, E); },3000);  
}

function stopX (timerX, B, C, D, E) {  
clearInterval(timerX);   
console.log('STOP: CLEARED: timer: '+timerX);
} 

我知道定时器var必须在函数之外,并且在其他任何地方都不会重新分配。即使这样,它也不起作用。

在此问题上,我已经看了很多问题,但是没有一个答案对这种情况有帮助。

1 个答案:

答案 0 :(得分:0)

setInterval返回的值应用作clearInterval的参数。

var timerX; 
var intervalId;

function playX(timerX, B, C, D, E) {    
  intervalId = setInterval(function() { away(timerX, B, C, D, E); }, 3000);  
}

function stopX(timerX, B, C, D, E) {  
  clearInterval(intervalId);   
  console.log('STOP: CLEARED: timer: '+timerX);
}