The Timer.jsm JavaScript code module contains pure-JavaScript implementations of setTimeout, clearTimeout, setInterval, and clearInterval that are compatible with the DOM window functions, but that can be used by code that does not have access to a DOM window (for example, JavaScript code modules or content frame scripts).
To use Timer.jsm, first import it:
Components.utils.import("resource://gre/modules/Timer.jsm");
Then call setTimeout and clearTimeout just as you would in a DOM window, for example:
let timeoutID = setTimeout(function() { console.log("Hello!"); }, 500);
clearTimeout(timeoutID);
Similarly, you can use setInterval and clearInterval like so:
let intervalID = setInterval(function() { console.log("Happening every 500ms!"); }, 500);
clearInterval(intervalID);