Search code examples
javascripthtmltimertiming

how to stop timer with another function javascript


So I have this code

function timer()
{
     setTimeout(function(){alert("Out of time")}, 3000); //Alerts "Out of time" after 3000 milliseconds
}
function resetTime()
{
     timer(); //this is not right, i thought it would override the first function but it just adds another timer as well which is not what I want
}
function stopTime()
{
     //What could go here to stop the first function from fully executing before it hits 3000 milliseconds and displays the alert message?
}

the function timer() starts as the page loads but if I have a button for stopTime() and I click on it, how do I stop the first function from executing and stop it from hitting the 3000 millisecond mark and alerting "Out of time"?


Solution

  • Use a variable with scope over all of your functions.

    var myTimer;
    ...
    myTimer = setTimeout(...);
    ...
    clearTimeout(myTimer);