Utilisez la fonction interval() d'RxJS pour créer un observable qui émet une séquence infinie de nombres à intervalles réguliers.
import { Component } from "@angular/core";
import { interval, Subscription } from "rxjs";
@Component({
selector: "app-root",
template: `
<h1>l'observable interval()</h1>
<button (click)="startTimer()">Démarrer</button>
<button (click)="stopTimer()">Arrêter</button>
<button (click)="resetTimer()">Réinitialiser</button>
<div>Minuterie: {{ time }}</div>
`
})
export class AppComponent {
time: number = 0;
private timerSubscription: Subscription | null = null;
startTimer() {
this.stopTimer();
const timer$ = interval(1000);
this.timerSubscription = timer$.subscribe((value) => {
this.time = value;
});
}
stopTimer() {
if (this.timerSubscription) {
this.timerSubscription.unsubscribe();
this.timerSubscription = null;
}
}
resetTimer() {
this.stopTimer();
this.time = 0;
}
} La fonction interval() est une fonction d'RxJS utilisée pour créer un observable qui émet une séquence infinie de nombres à intervalles réguliers.
interval(delay).subscribe(value => /* votre code ici */) Par exemple, interval(1000) émettra une valeur toutes les 1000 ms (1 seconde).