Files
discordeno/tests/util/delay_until.ts
2021-05-21 15:55:49 +00:00

15 lines
435 B
TypeScript

// deno-lint-ignore require-await
export async function delayUntil(maxMs: number, isReady: () => boolean | undefined, timeoutTime = 100): Promise<void> {
const maxTime = Date.now() + maxMs;
function hackyFix(resolve: () => void) {
if (isReady() || Date.now() >= maxTime) {
resolve();
} else {
setTimeout(() => hackyFix(resolve), timeoutTime);
}
}
return new Promise((resolve) => hackyFix(resolve));
}