pragma-throttle
v1.1.1
Published
Module for cycle throttling with sync and async methods. Has linear, random and manual delay.
Downloads
1
Maintainers
Readme
PragmaThrottle
Module for cycle throttling with sync and async methods. Has linear increase or decrease, random increase and manual increase delay.
Used and tested on
- NodeJS 7+ Documentation
Navigation
Install
npm i --save pragma-throttle
Initialization
const Trottler = require('pragma-throttle');
const throttleDelays = {
delay: 1000,
delayDefault: 1000,
delayStep: 100,
delayMax: 10000
};
const Throttle = new Throttler(throttleDelays);
Options
Delay options:
{
"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.
Throttled objects options:
{
"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
.
Methods
throttleSync(executeInfo[, delay])
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);
throttleAsync(executeInfo[, delay])
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);
setExecute(executeInfo)
executeInfo - null|Object
- Object with throttled options.
Return TRUE if execute specified, FALSE if not placed.
Check and specify execute and his args.
setExecuteArguments(...args)
args - array
- Spread arguments list.
Return always TRUE
Update exists args for execute on throttling
delayReset()
Return always TRUE
Reset throttle delaying to default value. Put it into throttled function or method.
delayManual(delay)
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.
delayIncrease()
Return always TRUE
Automatically increase delay using delayStep
.
It can not be increased more than delayMax
.
Put it into throttled function or method.
delayDecrease()
Return always TRUE
Automatically decrease delay using delayStep
.
It can not be decreased more than delayDefault
.
Put it into throttled function or method.
delayRandom()
Return always TRUE
Automatically random delay increase in the time between delayDefault
and delayMax
.
Put it into throttled function or method.
stop()
Stop throttling and clear timeouts.
reset()
Stop throttling, clear timeouts and reset delay settings to defaults.