Module for cycle throttling with sync and async methods. Has linear increase or decrease, random increase and manual increase delay.
- NodeJS 7+ Documentation
npm i --save pragma-throttle
const Trottler = require('pragma-throttle');
const throttleDelays = {
delay: 1000,
delayDefault: 1000,
delayStep: 100,
delayMax: 10000
};
const Throttle = new Throttler(throttleDelays);
{
"delay": 1000,
"delayDefault": 1000,
"delayStep": 100,
"delayMax": 10000
}
delay - number
- The delay between the iterations of the throttled loop.
delayDefault - number
- The default delay between the iterations of the throttled loop.
delayStep - number
- Increase/decrease the delay at each iteration to the value.
delayMax - number
- The maximum delay.
{
"obj": {},
"execute": "Method",
"args": []
}
obj - object|
- The object that owns the method specified in execute
.
execute - function|string
- Object obj
method name or a simple function.
args - array
- Arguments for method or function specified in execute
.
executeInfo - null|Object
- Object with throttled options.
delay - Number
- Start delay time in ms.
Return FALSE if error on throttling initialize.
Start synchronous throttling. If execute synchronous, delay begin countdown after execute workflow is finished. If execute asynchronous, delay begin countdown after calling execute.
let throttleObj = {
obj: Class,
execute: 'SyncClassMethod'
};
Throttle.throttleSync(throttleObj, 1000);
executeInfo - null|Object
- Object with throttled options.
delay - Number
- Start delay time in ms.
Return FALSE if error on throttling initialize.
Start asynchronous throttling.
Delay begin countdown after execute workflow is finished.
let throttleObj = {
obj: Class,
execute: 'AsyncClassMethod'
};
Throttle.throttleAsync(throttleObj, 1000);
executeInfo - null|Object
- Object with throttled options.
Return TRUE if execute specified, FALSE if not placed.
Check and specify execute and his args.
args - array
- Spread arguments list.
Return always TRUE
Update exists args for execute on throttling
Return always TRUE
Reset throttle delaying to default value. Put it into throttled function or method.
delay - Number
- Time in ms for increasing
Return always TRUE
Manually increase throttling delay. Ignore maximum delay value. Put it into throttled function or method.
Return always TRUE
Automatically increase delay using delayStep
.
It can not be increased more than delayMax
.
Put it into throttled function or method.
Return always TRUE
Automatically decrease delay using delayStep
.
It can not be decreased more than delayDefault
.
Put it into throttled function or method.
Return always TRUE
Automatically random delay increase in the time between delayDefault
and delayMax
.
Put it into throttled function or method.
Stop throttling and clear timeouts.
Stop throttling, clear timeouts and reset delay settings to defaults.