20 lines
449 B
JavaScript
20 lines
449 B
JavaScript
|
/**
|
||
|
* DebounceImmediately跟Debounce的区别是会首先立即执行一次。
|
||
|
*/
|
||
|
class DebounceImmediately {
|
||
|
constructor(time) {
|
||
|
//执行间隔
|
||
|
this.timeout = time;
|
||
|
//计时器
|
||
|
this.timer = null;
|
||
|
}
|
||
|
run(func, ...args) {
|
||
|
if (this.timer) {
|
||
|
return;
|
||
|
}
|
||
|
this.timer = setTimeout(() => {
|
||
|
this.timer = null;
|
||
|
}, this.timeout);
|
||
|
func(...args);
|
||
|
}
|
||
|
}
|