javascript / expert
Snippet
Fortgeschrittenes Observable-Multicasting mit share()
Der share()-Operator wird oft zu einfach verwendet. Durch die Konfiguration des Connectors und der Reset-Policies können Sie genau steuern, wie ein Stream gehasht wird (z. B. mit ReplaySubject) und wann der zugrunde liegende Producer beendet oder neu gestartet werden soll.
snippet.js
1
2
3
4
5
6
7
8
const shared$ = source$.pipe(share({connector: () => new ReplaySubject(1),resetOnComplete: false,resetOnError: false,resetOnRefCountZero: true}));
angular
Erklärung
1
connector: () => new ReplaySubject(1)
Definiert das interne Subject für das Multicasting, in diesem Fall das Caching des letzten emittierten Werts.
2
resetOnRefCountZero: true
Stellt sicher, dass das Source-Observable abgemeldet wird, wenn alle Observer die Verbindung trennen, um Ressourcen zu sparen.