0 Tage Serie
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
javascript
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.