blob: 18855a5f8e0469871a1c5db4e4a3ca38695abe79 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
import { Component, OnInit, OnDestroy } from '@angular/core';
import { NotificationsService } from 'angular2-notifications';
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: number = null;
private timeout: number = null;
constructor(
private notificationsService: NotificationsService,
private requestService: RequestService
) { }
ngOnInit() {
this.getStats();
this.runInterval();
}
ngOnDestroy() {
if (this.interval !== null) {
window.clearInterval(this.interval);
}
if (this.timeout !== null) {
window.clearTimeout(this.timeout);
}
}
getStats() {
this.requestService.getStats().subscribe(
stats => this.stats = stats,
err => this.notificationsService.error('Error', err.text)
);
}
private runInterval() {
this.interval = window.setInterval(() => {
this.stats.remainingMilliSeconds -= 1000;
if (this.stats.remainingMilliSeconds <= 0) {
this.timeout = window.setTimeout(() => this.getStats(), this.stats.remainingMilliSeconds + 100);
}
}, 1000);
}
}
|