ste-promise-events
Version:
Add the power of Events to your projects. They are styled after .Net using a sender and arguments. Handlers can be promises.
45 lines (44 loc) • 1.62 kB
TypeScript
import { IPromiseEvent } from './IPromiseEvent';
import { IPromiseEventHandler } from './IPromiseEventHandler';
import { IPropagationStatus, PromiseDispatcherBase } from "ste-core";
/**
* Dispatcher implementation for events. Can be used to subscribe, unsubscribe
* or dispatch events. Use the ToEvent() method to expose the event.
*
* @export
* @class PromiseEventDispatcher
* @extends {PromiseDispatcherBase<IPromiseEventHandler<TSender, TArgs>>}
* @implements {IPromiseEvent<TSender, TArgs>}
* @template TSender
* @template TArgs
*/
export declare class PromiseEventDispatcher<TSender, TArgs> extends PromiseDispatcherBase<IPromiseEventHandler<TSender, TArgs>> implements IPromiseEvent<TSender, TArgs> {
/**
* Creates a new EventDispatcher instance.
*/
constructor();
/**
* Dispatches the event.
*
* @param {TSender} sender The sender object.
* @param {TArgs} args The argument object.
* @returns {Promise<IPropagationStatus>} The status.
*
* @memberOf PromiseEventDispatcher
*/
dispatch(sender: TSender, args: TArgs): Promise<IPropagationStatus>;
/**
* Dispatches the event without waiting for the result.
*
* @param {TSender} sender The sender object.
* @param {TArgs} args The argument object.
*
* @memberOf PromiseEventDispatcher
*/
dispatchAsync(sender: TSender, args: TArgs): void;
/**
* Creates an event from the dispatcher. Will return the dispatcher
* in a wrapper. This will prevent exposure of any dispatcher methods.
*/
asEvent(): IPromiseEvent<TSender, TArgs>;
}