@studiometa/js-toolkit
Version:
A set of useful little bits of JavaScript to boost your project! 🚀
45 lines (44 loc) • 1.1 kB
TypeScript
/**
* Manage tasks in a queue.
*/
export declare class Queue {
/**
* List of tasks.
*/
tasks: Array<(...args: unknown[]) => unknown>;
/**
* Number of tasks running in a single batch.
*/
concurrency: number;
/**
* A function to schedule the next batch.
*/
waiter: (cb: (...args: unknown[]) => unknown) => unknown;
/**
* Is schedule running?
*/
isScheduled: boolean;
/**
* Constructor.
*
* @param {number} concurrency Number of tasks running in a single batch.
* @param {(cb: (...args:unknown[]) => unknown) => unknown} waiter Scheduler for the next batch execution.
*/
constructor(concurrency: number, waiter?: (cb: (...args: unknown[]) => unknown) => unknown);
/**
* Add a task to the queue.
*/
add(task: () => unknown): Promise<unknown>;
/**
* Schedule next flush.
*/
scheduleFlush(): void;
/**
* Flush current batch.
*/
flush(): void;
/**
* Run the queue.
*/
run(tasks: Array<(...args: unknown[]) => unknown>): void;
}