Files
discordeno/tests/util/delay_until.ts
2021-04-13 13:42:36 +02:00

21 lines
460 B
TypeScript

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(async () => {
await hackyFix(resolve);
resolve();
}, timeoutTime);
}
}
return new Promise((resolve) => hackyFix(resolve));
}