UNPKG

mihawk

Version:

A tiny & simple mock server tool, support json,js,cjs,ts(typescript).

35 lines (34 loc) 1.62 kB
/** * 异步操作相关封装: * - 1.不导出的成员(类型定义除外),请在命名上保持私有命名风格,以下划线_开头,_xxx * - 2.尽可能不互相引用 utils/ 文件夹之下的其他兄弟模块,防止形成循环依赖 */ /** * 异步睡 * @param {number} time * @returns {Promise<void>} */ export declare function sleep(time: number): Promise<void>; /** * promise 超时 * - 【注意】只能处理一些简单的 Promise,这类 Promise 实例的损耗较小。而一些会占用资源 * - 如:文件 io 的一部 Promise 实例,则不建议用这个,而推荐用其自带 timeout 能力。因为即使出发了 timeout 返回,但老的 Promise 依旧会执行 * - 又如:一些会对服务器造成一定压力的 fetch,不推荐使用这个包装函数,而更推荐使用 AbortController 的 signal 去做超时中断控制 * @param {Promise<T>} prms * @param {number} time * @returns {Promise<T | undefined>} res */ export declare function timeoutPromise<T = any | undefined>(prms: Promise<T>, time: number): Promise<void | T>; /** * 常见的异步函数 */ type AnyAsyncFunc = (...args: any[]) => Promise<any>; /** * 节流 - 异步版本 * - 立即调用执行,并且确保这次执行完成之后,才允许下一次 * @param {function} fn * @param {number} t * 本质:限流的一句话描述是它应尽可能频繁地调用提供的回调,但不应超过 t 毫秒的频率 */ export declare function throttleAsync<F extends AnyAsyncFunc>(asyncFn: F, t?: number): (...args: Parameters<F>) => Promise<void>; export {};