32 lines
622 B
TypeScript
32 lines
622 B
TypeScript
![]() |
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<void>
|
||
|
{
|
||
|
let endTime = this._timeMS + durationMS;
|
||
|
let currentTime = new Date().getTime();
|
||
|
|
||
|
while ( currentTime < endTime )
|
||
|
{
|
||
|
await sleep( sleepStepsMS) ;
|
||
|
currentTime = new Date().getTime();
|
||
|
}
|
||
|
|
||
|
return Promise.resolve();
|
||
|
}
|
||
|
}
|