diff options
Diffstat (limited to 'vnfmarket/src/main/webapp/vnfmarket/node_modules/throttleit/index.js')
-rw-r--r-- | vnfmarket/src/main/webapp/vnfmarket/node_modules/throttleit/index.js | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/vnfmarket/src/main/webapp/vnfmarket/node_modules/throttleit/index.js b/vnfmarket/src/main/webapp/vnfmarket/node_modules/throttleit/index.js new file mode 100644 index 00000000..1cc3ad61 --- /dev/null +++ b/vnfmarket/src/main/webapp/vnfmarket/node_modules/throttleit/index.js @@ -0,0 +1,32 @@ +module.exports = throttle; + +/** + * Returns a new function that, when invoked, invokes `func` at most once per `wait` milliseconds. + * + * @param {Function} func Function to wrap. + * @param {Number} wait Number of milliseconds that must elapse between `func` invocations. + * @return {Function} A new function that wraps the `func` function passed in. + */ + +function throttle (func, wait) { + var ctx, args, rtn, timeoutID; // caching + var last = 0; + + return function throttled () { + ctx = this; + args = arguments; + var delta = new Date() - last; + if (!timeoutID) + if (delta >= wait) call(); + else timeoutID = setTimeout(call, wait - delta); + return rtn; + }; + + function call () { + timeoutID = 0; + last = +new Date(); + rtn = func.apply(ctx, args); + ctx = null; + args = null; + } +} |