@studyportals/sp-hs-misc
Version:
Miscellaneous code used in HouseStark's projects
26 lines (25 loc) • 807 B
TypeScript
import { Throttleable } from "../..";
/**
* Offers the necessary functionality to throttle
* highly concurent operations.
*/
declare class Throttler {
private _tasksQueue;
private _concurrencyCounter;
private _concurrencyLimit;
protected get concurrencyLimit(): number;
protected get concurrencyCounter(): number;
protected get tasksQueue(): Throttleable[];
constructor(concurrencyLimit?: number);
enqueueTask(task: Throttleable): void;
private handleTaskEnqueued;
private executeNextTaskIfPossible;
private executeNextTask;
private tasksQueueNotEmpty;
private dequeueTask;
private handleTaskFinished;
private incrementConcurrencyCounter;
private decrementConcurrencyCounter;
private concurrencyLimitNotReached;
}
export { Throttler };