简单手写防抖节流

不多逼逼,直接上代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

export const debounce = (func: Function, timeout: number) => {
let timeoutList: Array<NodeJS.Timeout> = [];

return (...args: any[]) => {
let timeoutId: NodeJS.Timeout;
timeoutList.forEach(_timeoutId => clearTimeout(_timeoutId))
timeoutId = setTimeout(() => {
func(...args);
}, timeout);
timeoutList.push(timeoutId)
};
};



export const throttle = (func: Function, timeout: number) => {
let flag = true
return (...args: any[]) => {
if (flag) {
flag = false
setTimeout(() => {
func(...args);
flag = true
}, timeout);
}
};
};

作者

vear

发布于

2022-11-22

更新于

2023-11-23

许可协议

评论