//#region src/asyncPool.d.ts /** * 异步并发控制器(池) */ declare class AsyncPool { private readonly max; private pool; constructor(max?: number); /** * 新增异步方法 * @param asyncFn */ add(asyncFn: () => Promise): void; /** * 清除 */ clear(): void; /** * 获取请求池的长度 */ get size(): number; /** * 是否不为空 */ isNotEmpty(): boolean; /** * 是否为空 */ isEmpty(): boolean; /** * 消费 */ consume(): Promise; /** * 设置异步池 * @param tasks * @private */ private setPool; /** * 静态直接调用异步池 * @param tasks * @param max */ static query(tasks: (() => Promise)[], max?: number): Promise; } //#endregion //#region src/delayAsyncQueue.d.ts type AsyncQueueSate = 'pending' | 'rejected' | 'fulfilled'; /** * 延迟执行的异步请求队列 * 不保存状态,只是为了延迟执行请求队列 * 参考自 * [useAsyncQueue](https://github.com/vueuse/vueuse/blob/main/packages/core/useAsyncQueue/index.ts) */ declare class DelayAsyncQueue { private queue; private promiseState; private activeIndex; readonly result: { state?: AsyncQueueSate; data?: any; }[]; constructor(); /** * 新增 * @param asyncFn */ add(asyncFn: (...args: any[]) => Promise): void; /** * 设置队列 * @param data */ setQueue(data: ((...args: any[]) => Promise)[]): void; /** * 清除 */ clear(): void; /** * 获取请求队列的长度 */ get size(): number; /** * 是否不为空 */ isNotEmpty(): boolean; /** * 是否为空 */ isEmpty(): boolean; /** * 更新队列状态 * @param state * @param data * @private */ private updateResult; /** * 消费内部 * @private */ private _consume; /** * 消费 */ consume(): Promise; } //#endregion //#region src/safeAwait.d.ts /** * 安全的await * 用于阻止await报错,影响后续流程 * @param arg */ declare function safeAwait(arg: Promise): Promise; declare function safeAwait(arg: () => Promise): Promise; /** * 安全的await * 用于阻止await报错,影响后续流程 * ```ts * * const getList = safeAwaitFn(async ()=>{ * await Promise.reject() * await Promise.resolve() * }) * ``` * @param fn */ declare function safeAwaitFn(fn: (...args: any[]) => Promise): (...args: any[]) => void; //#endregion //#region src/promisefy.d.ts declare function promisefy(value: Promise): Promise; declare function promisefy(value: (...args: any[]) => T): Promise; declare function promisefy(value: T): Promise; //#endregion //#region src/delay.d.ts /** * 延迟 * @param time */ declare const delay: (time: number) => Promise; //#endregion export { AsyncPool, DelayAsyncQueue, delay, promisefy, safeAwait, safeAwaitFn };