"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Throttle = exports.throttle = void 0;
/**
 * 节流器
 *
 * 指定时间内最多执行一次
 * @param limit 指定的时间(毫秒)
 *
 * ```
 *
 * ```
 */
function throttle(fn, limit) {
    let wait = false;
    return function () {
        if (wait === false) {
            wait = true;
            setTimeout(function () {
                wait = false;
            }, limit);
            fn.apply(this, arguments);
        }
    };
}
exports.throttle = throttle;
/**
 * 节流装饰器
 *
 * 指定时间内最多执行一次
 * @param limit 指定的时间(毫秒)
 */
function Throttle(limit) {
    return function (target, propertyKey, descriptor) {
        descriptor.value = throttle(descriptor.value, limit);
    };
}
exports.Throttle = Throttle;
