toolset.io
Version:
79 lines (78 loc) • 2.99 kB
TypeScript
export declare const raf: (cb: FrameRequestCallback) => void;
interface ThrottleOptions {
leading?: boolean;
trailing?: boolean;
interval?: number;
}
interface DebounceOptions {
leading?: boolean;
trailing?: boolean;
delay?: number;
}
/**
* 将一个方法进行节流
*
* @param method 需要节流的方法,需自行绑定 this
* @param options 节流配置项,可设置间隔时间和 leading/trailing 行为
*
* @returns 节流后的方法
*/
export declare function throttle<T extends (...args: any[]) => any>(method: T, options?: number | ThrottleOptions): (...args: Parameters<T>) => void;
/**
* 将一个方法进行防抖
*
* @param method 需要防抖的方法,需自行绑定 this
* @param options 防抖配置项,可设置延迟时间和 leading/trailing 行为
*
* @returns 防抖后的方法
*/
export declare function debounce<T extends (...args: any[]) => any>(method: T, options?: number | DebounceOptions): (...args: Parameters<T>) => void;
/**
* 对给定的方法进行微任务级别的防抖
*
* @param method 需要防抖的方法,需自行绑定 this
* @param options 配置项,可设置 leading/trailing 行为
*
* @returns 防抖后的方法
*/
export declare function debounceMinor<T extends (...args: any[]) => any>(method: T, options?: {
leading?: boolean;
trailing?: boolean;
}): (...args: Parameters<T>) => Promise<Awaited<ReturnType<T>>>;
/**
* 对给定的方法进行渲染帧级别的防抖
*
* @param method 需要防抖的方法,需自行绑定 this
* @param options 配置项,可设置 leading/trailing 行为
*
* @returns 防抖后的方法
*/
export declare function debounceFrame<T extends (...args: any[]) => any>(method: T, options?: {
leading?: boolean;
trailing?: boolean;
}): (...args: Parameters<T>) => Promise<Awaited<ReturnType<T>>>;
/**
* 在下一微任务,仅执行一次传入的方法
*
* @param method 需要执行的方法
* @param args 方法的额外参数,在方法调用前多次传入将会覆盖之前的参数
*/
export declare function nextTickOnce<T extends (...args: any[]) => any>(method: T, ...args: any[]): undefined;
/**
* 在下一渲染帧,仅执行一次传入的方法
*
* @param method 需要执行的方法
* @param args 方法的额外参数,在方法调用前多次传入将会覆盖之前的参数
*/
export declare function nextFrameOnce<T extends (...args: any[]) => any>(method: T, ...args: any[]): undefined;
/**
* 按指定的并发数,并行地为系列源数据执行操作
*
* @param maxConcurrency 最大的并发数
* @param source 源数据
* @param iteratorFn 处理操作的异步函数
*
* @returns 等待所有任务执行完的 Promise 对象
*/
export declare function runParallel<T>(maxConcurrency: number, source: T[], iteratorFn: (item: T, source: T[]) => Promise<any>): Promise<any[]>;
export {};