实现防抖
时间: 2024-02-27 12:52:06 浏览: 57
防抖电路的设计
5星 · 资源好评率100%
防抖是指在一定时间内,多次触发同一事件,只执行最后一次,可以用于优化性能。实现防抖的方法如下:
1. 使用 setTimeout
```
function debounce(func, delay) {
let timer = null;
return function() {
const context = this;
const args = arguments;
clearTimeout(timer);
timer = setTimeout(() => {
func.apply(context, args);
}, delay);
}
}
```
2. 使用 Promise
```
function debounce(func, delay) {
let resolve;
return function() {
const context = this;
const args = arguments;
if (resolve) {
clearTimeout(resolve);
}
const promise = new Promise((res) => {
resolve = setTimeout(() => {
res(func.apply(context, args));
}, delay);
});
return promise;
}
}
```
以上是两种常见的实现防抖的方法,其中第一种使用了 setTimeout 函数来实现,第二种使用了 Promise 对象。在使用时,可以将需要防抖的函数作为参数传入 debounce 函数中即可。
阅读全文