JSFiddle - React, Tailwind, and code Playground
HTML
<button onclick="mouseup()">Run Code
</button>
<button onclick="pause()">Pause Code
</button>
JavaScript
let flag = 0;
const delay = 300;
const totalStps = 102;
var curStp = 0;
function mouseup() {
let i = 0;
console.log("Value of flag " + flag);
while(i < totalStps - curStp) {
const j = i;
var timeout = setTimeout(function(){
let stp = curStp;
console.log("i " + i + " j " + j + " curStp " + curStp);
curStp = stp+1; // this is done by setState.
console.log("flag " + flag + " timeout " + timeout);
}, delay * i);
if (flag === 1) {
console.log("break the loop");
clearTimeout(timeout);
// This is not stopping this setTimeout
break;
}
i++;
}
}
function pause() {
flag = 1;
console.log("Value of flag in pause() " + flag + " curStp " + curStp);
let stp = curStp;
curStp = stp; // this is done by setState.
}