Operatoren für Multicasting
In RxJS stehen mehrere spezielle Operatoren zur Verfügung, um "Multicasting" zu realisieren - das Teilen der Ausgabe eines Observables mit mehreren Subscribern.
Diese Seite stellt aus der Perspektive der Operatoren die wichtigsten Multicasting-bezogenen Operatoren vor und organisiert deren Verwendungsunterschiede und Vorsichtsmaßnahmen.
❗ Für konzeptionelle Erklärungen von Multicast, strukturelle Beschreibungen unter Verwendung von Subject und konkrete Codebeispiele siehe bitte Multicasting-Mechanismus.
Hauptsächliche Multicasting-bezogene Operatoren
| Operator | Merkmale | Bemerkungen |
|---|---|---|
| share() | Einfachster Multicast-Mechanismus. Intern äquivalent zu publish().refCount() | Für die meisten Anwendungsfälle ausreichend |
| shareReplay() | Zusätzlich zu Multicast werden die letzten Werte bei erneutem Abonnement bereitgestellt | Wenn Zustandswiederverwendung erforderlich ist |
publish() + refCount() | Multicast-Konfiguration mit kontrollierbarem Ausführungstiming | Klassische und flexible Konfiguration |
multicast() | Low-Level-API, die explizit ein Subject übergibt | Nützlich bei Verwendung von benutzerdefinierten Subjects |
Vergleich der Multicasting-Muster
| Operator | Merkmale | Anwendungsfall |
|---|---|---|
| share() | Grundlegendes Multicasting | Gleichzeitige Nutzung in mehreren Komponenten |
| shareReplay(n) | Puffert die letzten n Werte | Verspätete Subscription/Zustandsfreigabe |
publish() + refCount() | Feinere Kontrolle möglich | Wenn erweiterte Kontrolle erforderlich ist |
multicast(() => new Subject()) | Vollständige Anpassung | Wenn spezielle Subject-Typen benötigt werden |
Vorsichtsmaßnahmen bei Verwendung von Multicasting
- Timing verstehen: Verstehen, dass sich die empfangenen Werte je nach Zeitpunkt des Subscription-Starts unterscheiden
- Lifecycle-Management: Besonders bei Verwendung von
refCountwird der Stream beendet, wenn die Anzahl der Subscriber null wird - Fehlerbehandlung: Wenn ein Fehler im gemulticasteten Observable auftritt, betrifft dies alle Subscriber
- Speicherverwaltung: Bei Verwendung von
shareReplayetc. auf Memory Leaks achten