@onehat/ui
Version:
Base UI for OneHat apps
16 lines (15 loc) • 374 B
JavaScript
import sleep from './sleep.js';
export default async function waitFor(fn, pollingFrequencyMs = 1000, timeoutMs = null) {
let timeElapsed = 0;
const isTimedOut = () => {
if (!timeoutMs) {
return false;
}
timeElapsed += pollingFrequencyMs;
return timeElapsed > timeoutMs;
};
while(!fn() && !isTimedOut()) {
await sleep(pollingFrequencyMs);
}
return fn();
}