library-ts/browser/animation/TimePin.ts

32 lines
622 B
TypeScript
Raw Permalink Normal View History

2025-03-23 07:31:36 +00:00
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();
}
}