Batches requestIdleCallback calls, honors the deadline
Install
npm install --save idle-queue
Usage
Import the queue. By default it includes the polyfill.
var idleQueue = ; // without shimvar idleQueue = ;
Then add a function to the queue.
idleQueue;
If you save the function (note: uses ===
), you can remove it from the queue.
const callback = { console; };idleQueue;idleQueue; // => trueidleQueue;idleQueue; // => false
You can specify an estimated execution time. It defaults to 1ms.
idleQueue;
Currently only one timeout can be configured per queue. If this amount of time passes without the browser having an idle period, it will start executing queued operations. It defaults to 500ms. Will not take effect until after a currently running idle timeout finishes.
idleQueue;
The IdleDeadline object is passed as the first argument to your callback.
idleQueue;
You can set a requestIdleCallback
function to use in the queue. This is mostly useful for unit testing.
idleQueue;
Also mostly for unit tests, you can flush the queue. It requires you implement a custom IdleDeadline.
idleQueue;
You can receive a promise of the queue draining. Again, mostly for unit tests.
idleQueue;
Instances
The module exports a queue object, but it also has a .clone()
method which returns an independent queue.
Usually you want all of your code
var idleQueue = ;