Quando ci sottoscriviamo alle notifiche di un Observable, ci viene restituito un oggetto che rappresenta la subscription. Per evitare memory leak e malfunzionamenti, quando non abbiamo più bisogno di ricevere notifiche dobbiamo cancellare la subscription tramite il metodo unsubscribe. Quando abbiamo maschere molto complesse con molte interazioni potremmo dover gestire decine di observable e quindi sottoscriverci a tutti questi.
Grazie alla libreria https://github.com/wardbell/subsink possiamo gestire la cancellazione delle subscription in modo semplice e centralizzato. Subsink mette a disposizione la classe SubSink la quale offre metodi per aggiungere ed eliminare una o più subscription. Questo significa che nel nostro component possiamo creare un'istanza di SubSink, aggiungere le varie subscription tramite il metodo add e poi cancellarle tutte in fase di distruzione del component sfruttando il metodo unsubscribe.
export class MyComponent implements OnInit, OnDestroy { subs = new SubSink(); ngOnInit() { this.subs.add(myobservable1$.subscribe(...)); this.subs.add(myobservable2$.subscribe(...)); this.subs.add(myobservable3$.subscribe(...)); } ngOnDestroy() { this.subs.unsubscribe(); } }
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Documentare i servizi REST con Swagger e OpenAPI con .NET 9
Il nuovo controllo Range di Blazor 9
Utilizzare Hybrid Cache in .NET 9
Rinnovare il token di una GitHub App durante l'esecuzione di un workflow
Managed deployment strategy in Azure DevOps
Usare i settings di serializzazione/deserializzazione di System.Text.Json di ASP.NET all'interno di un'applicazione non web
Gestione degli eventi nei Web component HTML
Integrare SQL Server in un progetto .NET Aspire
Creare una libreria CSS universale - Rotazione degli elementi
Creare una libreria CSS universale: Immagini
Integrare un servizio esterno con .NET Aspire
Sfruttare gli embedding e la ricerca vettoriale con Azure SQL Database
I più letti di oggi
- Usare i settings di serializzazione/deserializzazione di System.Text.Json di ASP.NET all'interno di un'applicazione non web
- .NET Conference Italia 2025 - Milano
- The Agentic Day - Milano
- Documentare i servizi REST con Swagger e OpenAPI con .NET 9
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!