higlass
Version:
HiGlass Hi-C / genomic / large data viewer
48 lines (47 loc) • 1.4 kB
TypeScript
export default backgroundTaskScheduler;
export type DataTask<T> = {
data: T;
handler: (data: T) => void;
trackId?: string | undefined;
};
export type NullDataTask = {
data: null;
handler: () => void;
trackId?: string | undefined;
};
export type Task = DataTask<any> | NullDataTask;
declare const backgroundTaskScheduler: BackgroundTaskScheduler;
/**
*/
declare class BackgroundTaskScheduler {
/** @type {Task[]} */
taskList: Task[];
taskHandle: number | null;
requestIdleCallbackTimeout: number;
/**
* @template T
* @overload
* @param {(data: T) => void} taskHandler
* @param {T} taskData
* @param {string | null=} trackId
* @return {void}
*/
enqueueTask<T>(taskHandler: (data: T) => void, taskData: T, trackId?: (string | null) | undefined): void;
/**
* If `taskData` is `null` the `taskHandler` will eventaully be called without any arguments.
*
* @overload
* @param {() => void} taskHandler
* @param {null} taskData
* @param {string | null=} trackId
* @return {void}
*/
enqueueTask(taskHandler: () => void, taskData: null, trackId?: (string | null) | undefined): void;
/**
* @param {{ timeRemaining(): number, didTimeout: boolean }} deadline
*/
runTaskQueue(deadline: {
timeRemaining(): number;
didTimeout: boolean;
}): void;
}