pip-services3-commons-node
Version:
Portable abstractions and patterns for Pip.Services in Node.js
39 lines (37 loc) • 1.28 kB
text/typescript
/** @module run */
import { Parameters } from './Parameters';
/**
* Interface for components that can be called to execute work.
*
* @see [[Executor]]
* @see [[INotifiable]]
* @see [[Parameters]]
*
* ### Example ###
*
* class EchoComponent implements IExecutable {
* ...
* public execute(correlationId: string, args: Parameters, callback: (err: any, result: any) => void): void {
* let result = args.getAsObject("message");
* callback(null, result);
* }
* }
*
* let echo = new EchoComponent();
* let message = "Test";
* echo.execute("123", Parameters.fromTuples("message", message),
* (err, result) => {
* console.log("Request: " + message + " Response: " + result);
* }
* );
*/
export interface IExecutable {
/**
* Executes component with arguments and receives execution result.
*
* @param correlationId (optional) transaction id to trace execution through call chain.
* @param args execution arguments.
* @param callback callback function that receives execution result or error.
*/
execute(correlationId: string, args: Parameters, callback: (err: any, result: any) => void): void;
}