a-throttler
v0.1.0
Published
A library for throttling an array of functions to prevent blocking the execution stack
Downloads
3
Readme
Throttler
A package for throttling an array of actions (functions). This library was created to help prevent locking the browser with intensive JavaScript calls when web workers are not available.
Dependencies
Very few:
- ES6 Array.isArray
- ES6 Array#filter
- ES6 Array#includes
Installation
npm install --save throttler
Usage
const Throttler = require("throttler");
const throttler = new Throttler([function() {
return true;
}, function() {
return {};
}]);
throttler.execute().then(results => {
// result = [true, {}]
}).catch(...);
Versioning
This project uses SEMVER versioning scheme:
X . Y . Z
^ ^ ^
release feature bug
Reasoning
Most throttling libraries work at the very low level on Node (throttling streams) or with browser rendering (next animation frame, UI frameworks), but I could not find a library for simply throttling sequences of functions to prevent blocking the browser. This is only intended to be used where WebWorkers are not available. If WebWorkers can be used, they should be. This is not designed to be a replacement.
API
Throttler
Allows execution of an array of functions in a way that does not block the execution context
Kind: global class
new Throttler(actions)
A class for throttling actions. This can prevent locking the browser
| Param | Type | | --- | --- | | actions | Array.<function()> |
throttler.addActions(actions)
Kind: instance method of Throttler
| Param | Type | | --- | --- | | actions | Array.<function()> |
throttler.removeAction(actions)
Removes the provided function(s) from the actions array
Kind: instance method of Throttler
| Param | Type | | --- | --- | | actions | function | Array.<function()> |
throttler.execute() ⇒ Promise
Executes the queued actions in a throttled fashion
Kind: instance method of Throttler
Returns: Promise - A promise that resolves when all of the actions are complete. The resolved value is an array of values
returned by each action