2025-04-02 21:57:33 +08:00

19 lines
489 B
TypeScript

export declare type RunTask<T> = (...args: T[]) => Promise<void>;
export interface QueueContent<T> {
task: T;
resolve: () => void;
reject: (err?: any) => void;
}
export declare class Pool<T> {
private runTask;
private limit;
aborted: boolean;
queue: Array<QueueContent<T>>;
processing: Array<QueueContent<T>>;
constructor(runTask: RunTask<T>, limit: number);
enqueue(task: T): Promise<void>;
private run;
private check;
abort(): void;
}