javascript / intermediate
Snippet
Status-Teilung mit ReplaySubject
Ein ReplaySubject puffert eine festgelegte Anzahl von Werten und 'spielt' diese jedem neuen Abonnenten vor. Dies ist ideal zum Cachen von Daten, die einmal abgerufen werden, aber von mehreren Komponenten benötigt werden, die zu unterschiedlichen Zeiten initialisiert werden könnten.
snippet.js
1
2
3
4
5
6
private cache = new ReplaySubject<string[]>(1);items$ = this.cache.asObservable();refresh() {this.http.get<string[]>('/items').subscribe(d => this.cache.next(d));}
angular
Erklärung
1
new ReplaySubject<string[]>(1)
Erstellt ein Subject, das sich exakt den letzten emittierten Wert merkt (Puffergröße 1).
2
this.cache.asObservable()
Gibt die Daten als schreibgeschützten Stream frei, um externe Manipulationen am Subject zu verhindern.