/**
 * 节流模块
 * @date 2022-08
 * @author 何华东
 */

/**
 * 简单的节流器，单位时间内只执行一次(`Quasar`)
 * 
 * **注：节流器返回一个函数，需要再次调用才会执行**
 * 
 * @param func 要执行的方法
 * @param ms 时间(毫秒),默认一分钟
 */
export function throttle1(func: (...args) => void, ms = 1000 * 60) {
    let wait = false;

    return function (this, ...args) {
        if (wait === false) {
            wait = true;
            setTimeout(() => { wait = false }, ms);
            func.apply(this, args);
        }
    }
}