John
John

Reputation: 311

how to pause timer or freeze it and resume -> javascript

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

Answers (2)

Syed
Syed

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

Prakash
Prakash

Reputation: 6602

var t1;
t1 =setTimeout("dosomethig",1000) //1000 = 1 sec

clearTimeout(t1); // to release timeout

Upvotes: 2

Related Questions