| 1234567891011121314151617181920212223 |
- 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.read(checkElapsed, true);
- return () => cancelFrame(checkElapsed);
- }
- function delayInSeconds(callback, timeout) {
- return delay(callback, secondsToMilliseconds(timeout));
- }
- export { delay, delayInSeconds };
|