0 Tage Serie
javascript / intermediate
Snippet

Streams zusammenführen mit combineLatest

Der Operator 'combineLatest' führt mehrere Observables zu einem zusammen. Er gibt ein neues Array von Werten aus, sobald eines der Quell-Observables einen Wert emittiert, sofern alle Quellen mindestens einmal gesendet haben. Dies ist ideal, um ein 'View Model'-Objekt für Templates zu erstellen.

snippet.js
javascript
1
2
3
4
5
6
7
8
9
10
11
12
export class DashboardComponent {
private user$ = this.userService.currentUser$;
private settings$ = this.settingsService.preferences$;
vm$ = combineLatest([this.user$, this.settings$]).pipe(
map(([user, settings]) => ({
username: user.name,
theme: settings.theme,
isReady: true
}))
);
}
angular
Erklärung
1
combineLatest([this.user$, this.settings$])
Wartet darauf, dass alle Observables einen Wert senden, und kombiniert dann deren aktuellste Werte.
2
map(([user, settings]) => ...)
Transformiert das Array von Werten in ein einzelnes strukturiertes Objekt.