Polyfill of setInterval
const createSetInterval = () => {
let intervalId = 1;
let intervalMap = {};
const setIntervalPolyfill = (callback, delay, ...args) => {
let id = intervalId++;
function reIterate() {
intervalMap[id] = setTimeout(() => {
callback.apply(this, args);
if (intervalMap[id]) {
reIterate();
}
}, delay);
}
reIterate();
return id;
};
const clearSetInterval = (id) => {
delete intervalMap[id];
};
return { setIntervalPolyfill, clearSetInterval };
};
const { setIntervalPolyfill, clearSetInterval } = createSetInterval();
let counter = 0
let id = setIntervalPolyfill(
(name) => {
console.log(name);
console.log("Interval Running");
counter++
if(counter === 3) {
clearSetInterval(id)
}
},
1000,
"Arjunan K"
);