Files
upstream-yaak/apps/yaak-client/lib/minPromiseMillis.ts
upstream-mirror 906fb231cc
Some checks failed
Lint and Test / Lint/Test (push) Has been cancelled
Generate Sponsors README / deploy (push) Has been skipped
snapshot of https://github.com/mountain-loop/yaak.git (main, 2026-09-23; blobs > 131072B omitted)
2026-09-23 17:39:41 +05:00

20 lines
486 B
TypeScript

import { sleep } from "./sleep";
/** Ensures a promise takes at least a certain number of milliseconds to resolve */
export async function minPromiseMillis<T>(promise: Promise<T>, millis = 300) {
const start = Date.now();
let result: T;
try {
result = await promise;
} catch (e) {
const delayFor = millis - (Date.now() - start);
await sleep(delayFor);
throw e;
}
const delayFor = millis - (Date.now() - start);
await sleep(delayFor);
return result;
}