asva-executors
Version:
Helper classes for your async flow control
39 lines (38 loc) • 1.21 kB
TypeScript
export declare type ExecutorCommand = (...args: any[]) => Promise<any>;
export default class Executor {
protected readonly command: ExecutorCommand;
/**
* Currently running commands
*/
runCount: number;
/**
* Last executor run happened without an error
*/
wasLastRunFine: boolean;
/**
* Executor was run at least once
*/
wasRun: boolean;
/**
* Executor was run without throwing error at least once
*/
wasRunFine: boolean;
/**
* Executor was run with thrown error at least once
*/
wasRunBad: boolean;
constructor(command: ExecutorCommand);
static createAndRun(command: ExecutorCommand): Executor;
/**
* Command from this executor is currently running.
*/
get isRunning(): boolean;
/**
* @param parameters Arguments, will be passed down to command.
* @returns {Promise<any>} Promise result is formed from whatever you returned from command.
*/
run(...parameters: any[]): Promise<any>;
protected beforeRun(): void;
protected afterRun(promise: Promise<any>): void;
protected setRunResultFlags(success: boolean): void;
}