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
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.