diff --git a/ts/index.ts b/ts/index.ts index 7af2f29..867223f 100644 --- a/ts/index.ts +++ b/ts/index.ts @@ -36,7 +36,11 @@ export class Timeout { private _timeout: any; private _cancelled: boolean = false; + private timeoutInMillis: number; + private started: number; + constructor(timeInMillisecondArg, passOn?: T) { + this.timeoutInMillis = timeInMillisecondArg; this._deferred = smartpromise.defer(); this.promise = this._deferred.promise; this._timeout = setTimeout(() => { @@ -44,6 +48,7 @@ export class Timeout { this._deferred.resolve(passOn); } }, timeInMillisecondArg); + this.started = Date.now(); } /** @@ -60,4 +65,9 @@ export class Timeout { this._cancelled = true; this.makeUnrefed(); } + + public getTimeLeft() { + const result = this.started + this.timeoutInMillis - Date.now(); + return result > 0 ? result : 0; + } }