// 下载文件通用函数
export function download(filename, data) {
    let downloadUrl = window.URL.createObjectURL(data) //创建下载的链接
    let anchor = document.createElement('a') // 通过a标签来下载
    anchor.href = downloadUrl
    anchor.download = filename // download属性决定下载文件名
    anchor.click() // //点击下载
    window.URL.revokeObjectURL(downloadUrl) // 下载后释放Blob对象
}
/*** 防抖函数 n 秒后再执行该事件，若在 n 秒内被重复触发，则重新计时
   * @param fn 要被防抖的函数
   * @param delay 规定的时间
   */
export function debounce(fn, delay) {
    let timer;
    return function () {
        clearTimeout(timer);
        timer = setTimeout(() => {
            fn.apply(this, arguments);
        }, delay);
    }
}
/*** 节流函数 n 秒内只运行一次，若在 n 秒内重复触发，只有一次生效
   * @param fn 要被节流的函数
   * @param wait 规定的时间
   */
export function throttled(fn, wait) {
    let timer = null;
    return function (...args) {
        if (!timer) {
            timer = setTimeout(() => {
                fn.apply(this, args);
                timer = null;
            }, wait);
        }
    }
}