export class PromiseSignal < T > { readonly promise : Promise < T > ; resolve = ( value ) : void => { throw value ; } ; reject = ( reason ? ) : void => { throw reason ; } ; constructor ( ) { this . promise = new Promise ( ( resolve , reject ) => { this . resolve = resolve ; this . reject = reject ; } ) ; } }