mirror of
https://github.com/mountain-loop/yaak.git
synced 2026-01-16 14:06:49 +01:00
22 lines
511 B
TypeScript
22 lines
511 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: number) {
|
|
const start = Date.now();
|
|
let result;
|
|
let err;
|
|
|
|
try {
|
|
result = await promise;
|
|
} catch (e) {
|
|
err = e;
|
|
const delayFor = millis - (Date.now() - start);
|
|
await sleep(delayFor);
|
|
throw err;
|
|
}
|
|
|
|
const delayFor = millis - (Date.now() - start);
|
|
await sleep(delayFor);
|
|
return result;
|
|
}
|