views:

60

answers:

2

Simple question here that I can't seem to find an answer for: Once a setTimeout is set, is there any way to see if it's still, well, set?

if (!Timer)
{
    Timer = setTimeout(DoThis,60000);
}

From what I can tell, when you clearTimeout, the variable remains at its last value. A console.log I just looked at shows Timer as being '12', no matter if the timeout has been set or cleared. Do I have to null out the variable as well, or use some other variable as a boolean saying, yes, I have set this timer? Surely there's a way to just check to see if the timeout is still running... right? I don't need to know how long is left, just if it's still running.

+4  A: 

There isn't anyway to interact with the timer except to start it or stop it. I typically null the timer variable in the timeout handler rather than use a flag to indicate that the timer isn't running. There's a nice description on W3Schools about how the timer works. In their example they use a flag variable.

The value you are seeing is a handle to the current timer, which is used when you clear (stop) it.

tvanfosson
A: 

If I am correct you can in case of

var progress = null;
clearInterval(progress);
progress = setInterval(function() {}, 1000);

check:

if (progress == null) {

}

Or something similar.

André van Toly