import { sleep } from "./sleep"; export class TimePin { protected _timeMS:number; now() { this._timeMS = new Date().getTime(); } static create() { let pin = new TimePin(); pin._timeMS = new Date().getTime(); return pin; } async forMS( durationMS:number, sleepStepsMS:number = 15 ):Promise { let endTime = this._timeMS + durationMS; let currentTime = new Date().getTime(); while ( currentTime < endTime ) { await sleep( sleepStepsMS) ; currentTime = new Date().getTime(); } return Promise.resolve(); } }