@leafer/task
Version:
55 lines (51 loc) • 1.66 kB
TypeScript
import { ITaskProcessor, ITaskProcessorConfig, ITaskItem, IFunction, ITaskOptions } from '@leafer/interface';
declare class TaskProcessor implements ITaskProcessor {
config: ITaskProcessorConfig;
protected list: ITaskItem[];
protected parallelList: ITaskItem[];
protected parallelSuccessNumber: number;
running: boolean;
isComplete: boolean;
protected timer: any;
get total(): number;
index: number;
delayNumber: number;
get finishedIndex(): number;
get remain(): number;
get percent(): number;
constructor(config?: ITaskProcessorConfig);
add(taskCallback: IFunction, options?: ITaskOptions | number): ITaskItem;
protected push(task: ITaskItem, start?: boolean): void;
protected empty(): void;
start(): void;
pause(): void;
resume(): void;
skip(): void;
stop(): void;
protected run(): void;
protected runTask(): void;
protected runParallelTasks(): void;
protected runParallelTask(task: ITaskItem): void;
private nextTask;
protected setParallelList(): void;
protected fillParallelTask(): void;
protected onComplete(): void;
protected onTask(task: ITaskItem): void;
protected onParallelError(error: unknown): void;
protected onError(error: unknown): void;
destroy(): void;
}
declare class TaskItem implements ITaskItem {
readonly id: number;
parent: TaskProcessor;
parallel: boolean;
time: number;
isComplete: boolean;
isCancel: boolean;
private task;
constructor(task?: IFunction);
run(): Promise<void>;
complete(): void;
cancel(): void;
}
export { TaskItem, TaskProcessor };