@ivujs/i-utils
Version:
前端模块化 JavaScript 工具库
27 lines (26 loc) • 1.36 kB
TypeScript
/**
* @module 函数
*/
/**
* 防抖函数
* @description 事件执行后,在延迟时间内如果再次执行,会清空定时器重新延迟执行,举例:用户在输入框进行输入搜索,最终是会获取到最后一次输入,节约请求资源
* @param {Function} fn 目标函数
* @param {number} delay 延迟时间,单位毫秒,默认 1*1000 毫秒
* @param {boolean} immediate 是否立即执行,默认true
* @returns {Function} 返回function()
*/
export declare function debounce<T extends (...args: any[]) => any>(fn: T, delay?: number, immediate?: boolean): (...args: Parameters<T>) => ReturnType<T> | void;
/**
* 节流函数
* @description 高频触发时,在指定时间间隔内只执行一次,举例:监听页面滚动,不会频繁触发,只会在固定时间内获取一次
* @param {Function} fn 目标函数
* @param {number} interval 时间间隔,单位毫秒,默认1000毫秒
* @returns {Function} 返回function()
*/
export declare function throttle<T extends (...args: any[]) => any>(fn: T, interval?: number): (...args: Parameters<T>) => ReturnType<T> | void;
/**
* 睡眠延迟执行
* @description 需要配合 async/await 来达到延迟效果
* @param {number} delay 延迟时间,单位毫秒,默认1000毫秒
*/
export declare function sleep(delay?: number): Promise<unknown>;