1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| exports = function(fn, wait, immediate) {
| var timeout;
| return function() {
| var ctx = this;
| var args = arguments;
| var throttler = function() {
| timeout = null;
| fn.apply(ctx, args);
| };
| if (!immediate) clearTimeout(timeout);
| if (!immediate || !timeout) timeout = setTimeout(throttler, wait);
| };
| };
|
| module.exports = exports;
|
|