gristlabs_grist-core/test/server/wait.ts

19 lines
466 B
TypeScript
Raw Normal View History

import * as bluebird from 'bluebird';
/**
* Wait some time for a check to pass. Allow a pause between checks.
*/
export async function waitForIt(check: () => Promise<void>, maxWaitMs: number,
stepWaitMs: number = 1000) {
const start = Date.now();
for (;;) {
try {
await check();
return;
} catch (e) {
if (Date.now() - start > maxWaitMs) { throw e; }
}
await bluebird.delay(stepWaitMs);
}
}