Вы можете использовать следующий код в качестве примера.
Класс компонента будет выглядеть следующим образом:
export class AppComponent {
progressbarValue = 100;
curSec: number = 0;
startTimer(seconds: number) {
const time = seconds;
const timer$ = interval(1000);
const sub = timer$.subscribe((sec) => {
this.progressbarValue = 100 - sec * 100 / seconds;
this.curSec = sec;
if (this.curSec === seconds) {
sub.unsubscribe();
}
});
}
}
В шаблоне у вас есть индикатор выполнения, который использует значениеprogressbarValue
:
<mat-progress-bar mode="determinate" [value]="progressbarValue"></mat-progress-bar>
И кнопка для запуска метода startTimer
:
<button mat-raised-button (click)="startTimer(60)">Start timer</button>
Пример работающего кода можно найти здесь:
https://stackblitz.com/edit/angular-material-progress-bar-decrease