1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| export function throttle(fun, delay) {
| let last, deferTimer;
| return function (args) {
| let that = this;
| let _args = arguments;
| let now = +new Date();
| if (last && now < last + delay) {
| clearTimeout(deferTimer);
| deferTimer = setTimeout(() => {
| last = now;
| fun.apply(that, _args);
| }, delay);
| } else {
| last = now;
| fun.apply(that, _args);
| }
| };
| }
|
|