remote-controlled-promise
Version:
Create a Promise object that is controllable from outside
19 lines (18 loc) • 729 B
TypeScript
export declare function create<Value>(): ControlledPromise<Value>;
export declare class ControlledPromise<Value> {
readonly controller: Controller<Value>;
readonly promise: Promise<Value>;
constructor(controller: Controller<Value>, promise: Promise<Value>);
resolve(value: Value): Promise<Value>;
reject(reason?: any): Promise<Value>;
}
export declare class Controller<Value> {
readonly resolve: Controller.Resolver<Value>;
readonly reject: Controller.Rejecter;
constructor(resolve: Controller.Resolver<Value>, reject: Controller.Rejecter);
}
export declare namespace Controller {
type Resolver<X> = (x: Promise<X> | X) => void;
type Rejecter = (x?: any) => void;
}
export default create;