blob: 23b8367792329efe36696bbb38480a36c93bf622 (
plain) (
tree)
|
|
import { setInterval } from 'timers'
import { Component, OnInit, OnDestroy } from '@angular/core';
import { RequestService, RequestStats } from '../shared';
@Component({
selector: 'my-request-stats',
templateUrl: './request-stats.component.html',
styleUrls: [ './request-stats.component.scss' ]
})
export class RequestStatsComponent implements OnInit, OnDestroy {
stats: RequestStats = null;
private interval: NodeJS.Timer = null;
constructor(private requestService: RequestService) { }
ngOnInit() {
this.getStats();
this.runInterval();
}
ngOnDestroy() {
if (this.stats !== null && this.stats.secondsInterval !== null) {
clearInterval(this.interval);
}
}
getStats() {
this.requestService.getStats().subscribe(
stats => this.stats = stats,
err => alert(err.text)
);
}
private runInterval() {
this.interval = setInterval(() => {
this.stats.remainingMilliSeconds -= 1000;
if (this.stats.remainingMilliSeconds <= 0) {
setTimeout(() => this.getStats(), this.stats.remainingMilliSeconds + 100);
}
}, 1000);
}
}
|