封装一个通用的防抖函数
时间: 2024-04-24 13:24:24 浏览: 15
好的,我可以为你封装一个通用的防抖函数。防抖函数可以在用户触发某个事件时延迟执行该事件的回调函数,如果在延迟期间内再次触发该事件,则重新计时延迟。以下是一个示例的防抖函数的封装:
```python
import time
from functools import wraps
def debounce(delay):
def decorator(func):
@wraps(func)
def wrapper(*args, **kwargs):
wrapper.timer = None # 定时器初始化为None
def call_it():
func(*args, **kwargs)
wrapper.timer = None # 回调执行后重置定时器为None
if wrapper.timer is not None:
clearTimeout(wrapper.timer) # 清除上一次触发后尚未执行的定时器
wrapper.timer = setTimeout(call_it, delay) # 设置新的定时器
return wrapper
return decorator
```
这个防抖函数接受一个延迟参数 `delay`,单位为毫秒。使用 `@debounce(delay)` 装饰器将其应用到需要防抖的函数上。
请注意,上述代码是一个示例,具体的实现可能会根据项目的需要进行调整。