How to clear all setInterval() and setTimeOut() without knowing their ID?

If I don't know the return value of setInterval() or setTimeOut(), can I still use clearInterveral(id) or clearTimeOut(id) to clear them?




You can replace original both setTimeout and setInterval like:

   setInterval = (function( oldsetInterval){
    var registered=[],
    f = function(a,b){
        return registered[ registered.length ] = oldsetInterval(a,b)
     f.clearAll = function(){
        var r;
        while( r = registered.pop()) { 
           clearInterval( r );
    return f;    

And now:

setInterval( function(){alert(5000)}, 5000 );
setInterval( function(){alert(10000)}, 10000 );


Suggesting a commentary from @PointedEars you shouldn't use the same name so:

reportingSetInterval = as above;
reportingSetInterval( function(){alert(5000)}, 5000 ); 

and so on..


You can use a register pattern based object for this.


As far as I know, this is not possible without the original id, so storing that, maybe in an array would be a good idea


Recent Questions

Top Questions

Home Tags Terms of Service Privacy Policy DMCA Contact Us

©2020 All rights reserved.