import { Context } from './context'; export interface PerformanceRecord { name: string; start: number; end: number; } import { Parallel } from './parallel'; export type Step = (ctx: CTX) => void | Promise; export declare class Executor | Parallel, CTX extends Context> { /** 定义每一个运行步骤的函数 */ private steps; context: CTX; constructor( /** 定义每一个运行步骤的函数 */ steps: T[], context: CTX); /** * state of class * -1 => idle; * index of this.order => running; * more => done; */ protected ptr: number; setPtr(newPtr: number): number; records: PerformanceRecord[]; startTask(task: Step): { start: number; p: Promise; task: Step; }; endTask({ start, task }: { start: number; task: Step; }): void; /** 步进机制,可以添加事件响应,或者 debugger */ nextStep(): Promise; private concurrentMap; run( /** * 当任务执行次数超过这个倍数时将会跳出循环并且报错 */ maxStepsOver?: number): Promise; }