/**
 * 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);
    }
}