| 12345678910111213141516171819202122232425262728293031 |
- /**
- * Module exports.
- */
- module.exports = throttle;
- /**
- * Returns a new function that, when invoked, invokes `func` at most one time per
- * `wait` milliseconds.
- *
- * @param {Function} func The `Function` instance to wrap.
- * @param {Number} wait The minimum number of milliseconds that must elapse in between `func` invokations.
- * @return {Function} A new function that wraps the `func` function passed in.
- * @api public
- */
- function throttle (func, wait) {
- var rtn; // return value
- var last = 0; // last invokation timestamp
- return function throttled () {
- var now = new Date().getTime();
- var delta = now - last;
- if (delta >= wait) {
- rtn = func.apply(this, arguments);
- last = now;
- }
- return rtn;
- };
- }
|