How to do a timer in Angular 5 [closed] How to do a timer in Angular 5 [closed] angular angular

How to do a timer in Angular 5 [closed]


You can simply use setInterval to create such timer in Angular, Use this Code for timer -

timeLeft: number = 60;  interval;startTimer() {    this.interval = setInterval(() => {      if(this.timeLeft > 0) {        this.timeLeft--;      } else {        this.timeLeft = 60;      }    },1000)  }  pauseTimer() {    clearInterval(this.interval);  }<button (click)='startTimer()'>Start Timer</button><button (click)='pauseTimer()'>Pause</button><p>{{timeLeft}} Seconds Left....</p>

Working Example

Another way using Observable timer like below -

import { timer } from 'rxjs';observableTimer() {    const source = timer(1000, 2000);    const abc = source.subscribe(val => {      console.log(val, '-');      this.subscribeTimer = this.timeLeft - val;    });  }<p (click)="observableTimer()">Start Observable timer</p> {{subscribeTimer}}

Working Example

For more information read here


This may be overkill for what you're looking for, but there is an npm package called marky that you can use to do this. It gives you a couple of extra features beyond just starting and stopping a timer.You just need to install it via npm and then import the dependency anywhere you'd like to use it.Here is a link to the npm package:https://www.npmjs.com/package/marky

An example of use after installing via npm would be as follows:

import * as _M from 'marky';@Component({ selector: 'app-test', templateUrl: './test.component.html', styleUrls: ['./test.component.scss']})export class TestComponent implements OnInit { Marky = _M;}constructor() {}ngOnInit() {}startTimer(key: string) { this.Marky.mark(key);}stopTimer(key: string) { this.Marky.stop(key);}

key is simply a string which you are establishing to identify that particular measurement of time. You can have multiple measures which you can go back and reference your timer stats using the keys you create.