Skip to content

Commit b34782c

Browse files
committed
fix performance issue with setInterval
1 parent 5be136d commit b34782c

File tree

2 files changed

+13
-16
lines changed

2 files changed

+13
-16
lines changed

src/app/episode-details/episode-details.component.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
</div>
77
<div class="row">
88
<div class="col">
9-
Current: {{ now | date:'hh:mm:ss EEEE dd LLL' }}
9+
Current: {{ now$ | async | date:'hh:mm:ss EEEE dd LLL' }}
1010
</div>
1111
</div>
1212
<div class="row mb-2">
@@ -97,4 +97,4 @@ <h2>{{episode.name}}</h2>
9797
</div>
9898
</div>
9999

100-
</div>
100+
</div>

src/app/episode-details/episode-details.component.ts

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
import { Component, OnInit, Input } from '@angular/core';
2-
import { EpisodeService } from '../service/episode.service';
3-
import { Episode } from '../model/episode';
42
import { Location } from '@angular/common';
53
import { ActivatedRoute, Router, NavigationEnd } from '@angular/router';
64
import { FormBuilder, Validators, FormGroup } from '@angular/forms';
5+
import { map, share } from 'rxjs/operators';
6+
import { interval } from 'rxjs';
7+
import { EpisodeService } from '../service/episode.service';
8+
import { Episode } from '../model/episode';
79
import { Theme } from '../model/theme';
8-
import { filter } from 'rxjs/operators';
910
import { environment } from '../../environments/environment';
1011
import { User } from '../model/user';
1112
import { LoggedUserService } from '../service/logged-user.service';
@@ -17,24 +18,20 @@ import { LoggedUserService } from '../service/logged-user.service';
1718
})
1819
export class EpisodeDetailsComponent implements OnInit {
1920

20-
public now: Date = new Date();
2121
episode: Episode;
2222
addForm: FormGroup;
2323
currentUser: User;
24-
editableTheme: Theme
25-
24+
editableTheme: Theme;
2625
updateForm: FormGroup;
2726

27+
now$ = interval(1000).pipe(map(x => new Date()), share());
28+
2829
constructor(private formBuilder: FormBuilder,
29-
private router: Router,
30-
private route: ActivatedRoute,
30+
private router: Router,
31+
private route: ActivatedRoute,
3132
private episodeService: EpisodeService,
32-
private sessionUserService: LoggedUserService,
33-
private location: Location) {
34-
setInterval(() => {
35-
this.now = new Date();
36-
}, 1);
37-
}
33+
private sessionUserService: LoggedUserService,
34+
private location: Location) { }
3835

3936
ngOnInit() {
4037
this.addForm = this.formBuilder.group({

0 commit comments

Comments
 (0)