Java脚本:如何查找setInterval函数现在正在运行还是超时?

时间:2013-09-10 19:31:05

标签: javascript setinterval

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

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

2 个答案:

答案 0 :(得分:7)

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

根据您发布的代码:

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;
}

答案 1 :(得分: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;