Also hier ist das Szenario. Ich habe einen Benutzerdienst mit einem BehaviorSubject und einer Methode, die eine Observable dieses BehaviorSubject zurückgibt. Meine zweite Datei ist die Header-Komponente, die das Observable abonniert. Die Frage ist .. Ist es möglich, nur Änderungen zu abonnieren oder muss ich etwas Logik vor der this.userSubject.next(this.user)
haben?Angular 2+ abonnieren beobachtbar nur bei Änderung
Denn hier Bezug ist der Code:
// user.service.ts
user: User;
private userSubject = new BehaviorSubject<User>(new User({}));
keepUpdated =() => {
this.tokenService.tokenStream()
.subscribe(token => {
this.user.update(token);
this.userSubject.next(this.user);
});
}
Und hier
// header.component.ts
ngOnInit() {
this.userService.keepUpdated();
this.userService.userStream()
.subscribe(user => {
// Here is the problem. This console.log gets called everytime userSubject.next(this.user) send something. I would like it only only to be called if the user is different from the previous one.
console.log(user);
});
}