1.1.1 • Published 8 years ago

pragma-throttle v1.1.1

Weekly downloads
3
License
WTFPL
Repository
github
Last release
8 years ago

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

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.

License

No WTFPL License image :(