Timer.jsm

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);