@fseehawer/requestidlecallback
v1.1.0
Published
This requestIdleCallback polyfill doesn't use the window object to detect if the feature is supported in the browser and falls back to a simple timeout if the feature isn't supported.
Maintainers
Readme
requestIdleCallback polyfill
This requestIdleCallback polyfill doesn't use the window object to detect if the feature is supported in the browser and falls back to a simple timeout if the feature isn't supported.
install
npm install @fseehawer/requestidlecallbackexample
import requestIdleCallback from '@fseehawer/requestidlecallback'
requestIdleCallback(() => {
// your non-splittable task
})for splittable task you can use the yielding technique:
requestIdleCallback((deadline) => {
while ((deadline.timeRemaining() > 0) || deadline.didTimeout) {
// your splittable tasks
}
})Using the Promise-based API
import requestIdleCallback from '@fseehawer/requestidlecallback';
requestIdleCallback.promise({ timeout: 100 }).then((deadline) => {
// Use the idle deadline to perform tasks
});for cancelling?
import requestIdleCallback, { cancelIdleCallback } from '@fseehawer/requestidlecallback'
// your code
const id = requestIdleCallback(doSomething)
// then if you need to cancel
cancelIdleCallback(id)