I\'d like to know how to achieve: generate a random number after a random number of time. And reuse it.
function doSomething(){
// ... do something.....
Here's a reusable version that can be cleared. Open-sourced as an NPM package with IntelliSense enabled.
Utility Function
const setRandomInterval = (intervalFunction, minDelay, maxDelay) => {
let timeout;
const runInterval = () => {
const timeoutFunction = () => {
intervalFunction();
runInterval();
};
const delay = Math.floor(Math.random() * (maxDelay - minDelay + 1)) + minDelay;
timeout = setTimeout(timeoutFunction, delay);
};
runInterval();
return {
clear() { clearTimeout(timeout) },
};
};
Usage
const interval = setRandomInterval(() => console.log('Hello World!'), 1000, 5000);
// // Clear when needed.
// interval.clear();