Package Exports
- idle-tasks
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (idle-tasks) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
idle-tasks
The common web apps use lot's of javascript today. The javascript on your web is not only own but also third party's. So you need define priority for better performance and some less important code evaluate lazy. The idle-tasks module allow you define queue of tasks which will be evaluated after browser is idle. It use requestIdleCallback under the hood. If requestIdleCallback was not support in browser it would use setTimeout.
Installation
npm i idle-tasks --saveUsage
import { createIdleQueue, Event } from 'idle-tasks';
function createTask() {
return (deadline) => {
return new Promise((resolve) => {
setTimeout(resolve, 100 + time);
})
}
}
const idleQueue = createIdleQueue({
ensureTasks: true,
timeout: 1000
});
idleQueue.addTask(createTask());
idleQueue.addTask(createTask());
idleQueue.addTask(createTask());
idleQueue.addTask(createTask());
idleQueue.addTask(createTask());
idleQueue.on(Event.Start, () => console.log('start tasks'));
idleQueue.on(Event.Finish, ({ results }) => console.log('finish tasks', ...results));
idleQueue.on(Event.Error, ({ error }) => console.error(error));
// for running tasks immediately
// idleQueue.run();
// for scheduling tasks
idleQueue.schedule();