1

在我的项目中,我使用了两个 setInterval 函数,一个函数一直在运行。第二个功能是根据键盘输入动态启动和停止。如何找到第二个 setInterval 函数的状态(运行或超时)?

    setInterval(function()
            {
            if(//want to check state of seInterval Function fire)
                      {
                       //somecode
                      }
            },300);
  var fire=setInterval(function()
            {
                     // some code
            },300);
4

2 回答 2

7

最好在 setInterval 的方法中添加一个boolean变量。isRunning根据它切换值。使用该值可以跟踪状态。

根据您发布的代码:

isFirstInstanceRunning =true;
isSecondInstanceRunning = false;
setInterval(function() {
    //want to check state of seInterval Function fire
    if(isFirstInstanceRunning){
        //somecode
    }
},300);

//--- Pass a boolean parameter as "true" onKeypress     
function startSecondInstance(toCheck) {     
    var fire=setInterval(function() {
        //want to check state of seInterval Function fire
        if(toCheck){
            //somecode
        }
    },300);
}

//---Similarly when you stop the second method
function stopSecondInstance() {
    clearInterval(fire);
    isSecondInstanceRunning = false;
}
于 2013-09-10T19:34:50.430 回答
2

不,不是直接的,但是您可以设置一个变量来定期检查它是否正在运行:

var isRunning = false;

//Start it
var timer = setInterval(function() {
    //yada yada function stuff
    isRunning = true;
}, 3000);

//Check it
if (isRunning) console.log("Running!");

//Stop it
clearInterval(timer);
isRunning = false;
于 2013-09-10T19:34:55.360 回答