react-native-worklets
Version:
The React Native multithreading library
26 lines (24 loc) • 955 B
JavaScript
;
export function setupSetInterval() {
'worklet';
const intervalHandleToTimeoutHandle = new Map();
const setIntervalPolyfill = (callback, delay = 0, ...args) => {
let intervalHandle = 0;
const repeatingCallback = () => {
const timeoutHandle = setTimeout(repeatingCallback, delay);
intervalHandleToTimeoutHandle.set(intervalHandle, timeoutHandle);
callback(...args);
};
intervalHandle = setTimeout(repeatingCallback, delay);
intervalHandleToTimeoutHandle.set(intervalHandle, intervalHandle);
return intervalHandle;
};
const clearIntervalPolyfill = intervalHandle => {
const timeoutHandle = intervalHandleToTimeoutHandle.get(intervalHandle);
clearTimeout(timeoutHandle);
intervalHandleToTimeoutHandle.delete(intervalHandle);
};
globalThis.setInterval = setIntervalPolyfill;
globalThis.clearInterval = clearIntervalPolyfill;
}
//# sourceMappingURL=setIntervalPolyfill.js.map