keep track of your setTimeouts
setTimeout and clearTimeout extended to use names to collect timeouts in a registry
by basiclaser
JavaScript
window.oldSetTimeout = window.setTimeout
var registeredTimeouts = {}
var registeredTimeoutsCounter = 0
//overwrite setTimeout to add the timeout to the 'registeredTimeouts' registry as well
window.setTimeout = function(callback, duration) {
console.log("new timeout registered")
var timeoutName = "timeout"+registeredTimeoutsCounter;
console.log(timeoutName)
registeredTimeouts[timeoutName] = oldSetTimeout(callback, duration);
registeredTimeoutsCounter++
}
window.oldClearTimeout = window.clearTimeout
//overwrite clearTimeout to remove the timeout from the registry as well
window.clearTimeout = function(timeoutName) {
if(registeredTimeouts[timeoutName]) {
window.oldClearTimeout(registeredTimeouts[timeoutName])
delete registeredTimeouts[timeoutName]
console.log("timeout cleared")
} else {
console.log("error")
}
}
window.setTimeout(function(){console.log(11)},1000)
window.setTimeout(function(){console.log(22)},2000)
window.setTimeout(function(){console.log(33)},3000)
//check the registered timeouts before deleting the 2nd one
console.log(registeredTimeouts)
//delete the 2nd registered timeout
window.clearTimeout("timeout1")
//check the registered timeouts before deleting the 2nd one
console.log(registeredTimeouts)