schedula
v0.1.2
Published
priority based work scheduler for javascript
Downloads
1
Maintainers
Readme
schedula.js
priority based work scheduler for javascript.
- ~700 bytes minified+gzipped
Browser Support
- Edge
- IE 8+
- Chrome
- Firefox
- Safari
- Node
Installation
direct download
<script src=schedula.min.js></script>
CDN
<script src=https://unpkg.com/[email protected]/schedula.min.js></script>
npm
npm install md.js --save
Examples
// create a fiber
var fiber = schedula(60);
// push work
fiber.push(true, null, (a, b) => {
console.log(a, b);
}, 3, [1, 2]);
// slow things down, this will throttle work to a 20fps budget
schedule.budget = 20;
// speed things up, this will throttle work to a 60fps budget
schedule.budget = 60;
// context
var foo = {
bar: function (a, b) {
console.log(a, b);
}
}
fiber.push(true, foo, foo.bar, 3, [1, 2]);
// manually flush high priority work, without throttling
fiber.flush(true);
// manually flush low priority work, without throttling
API
push
push work
/**
* @param {boolean} priority - true for high priority
* @param {any} context - this context
* @param {function} callback - callback function
* @param {number} length - number of arguments passed
* @param {any[]} arguments - array of arguments passed
*/
flush
manually flush work sync
/**
* @param {boolean} priority - true for high priority
*/
budget
get/set budget
/**
* @type getter/setter
*/
work
get queued work.
/**
* @type getter
*/