Reputation: 311
I am doing a little app in javascript that has some timers around. At some point I need to change the variables that a single timer is using during runtime.
I tried a coiple of times just changing the variable (incrementing it, for instance in 10 units) still the timer will have a weird behavior. So I figured out that the timer must be stopped first, change the variable and after that resume it (but still dunno this is possible).
What I want to ask is: there is any way to pause a timer function and then resume it?
EDIT: the variables are not local for the timer (they are global)
Upvotes: 1
Views: 4845
Reputation: 1
For React I used the following code to implement pause and reset:
in Timer component:
function Timer() {
const [seconds, setSeconds]=useState(0);
const [pause, setPause]=useState(false);
useEffect( ()=>{
const itnerval = setInterval( ()=>!pause && setSeconds( ( prev ) => prev + 1 ), 1000 );
return () => clearInterval( interval );
}, pause);
return <>
<h1>Timer: { seconds }s</h1>
<button onClick={()=>setSeconds( 0 )}>Reset</button>
<button onClick={ ()=>setPause(!pause) }>Pause</button>
</>;
}
export default Timer;
Upvotes: 0
Reputation: 6602
var t1;
t1 =setTimeout("dosomethig",1000) //1000 = 1 sec
clearTimeout(t1); // to release timeout
Upvotes: 2