Files
Basilosaurusrex f027651f9b main repo
2025-11-24 18:09:40 +01:00

24 lines
654 B
JavaScript

import { time, frame, cancelFrame } from 'motion-dom';
import { secondsToMilliseconds } from 'motion-utils';
/**
* Timeout defined in ms
*/
function delay(callback, timeout) {
const start = time.now();
const checkElapsed = ({ timestamp }) => {
const elapsed = timestamp - start;
if (elapsed >= timeout) {
cancelFrame(checkElapsed);
callback(elapsed - timeout);
}
};
frame.setup(checkElapsed, true);
return () => cancelFrame(checkElapsed);
}
function delayInSeconds(callback, timeout) {
return delay(callback, secondsToMilliseconds(timeout));
}
export { delay, delayInSeconds };