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
Introduzione ai web component HTML
Usare i servizi di Azure OpenAI e ChatGPT in ASP.NET Core con Semantic Kernel
Ridurre il reflow ottimizzando il CSS
Supportare la crittografia di ASP.NET Core con Azure Container App
Gestire i dati con Azure Cosmos DB Data Explorer
Abilitare automaticamente il force push di un gruppo su Azure DevOps
Integrare un servizio esterno con .NET Aspire
Utilizzare WhenEach per processare i risultati di una lista di task
Utilizzare Locust con Azure Load Testing
Il nuovo controllo Range di Blazor 9
Creare una libreria CSS universale - Rotazione degli elementi
Utilizzare l'espressione if inline in una pipeline di Azure DevOps
I più letti di oggi
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Documentare i servizi REST con Swagger e OpenAPI con .NET 9
- Impersonation di utente per l'esecuzione di codice in una pagina ASP.NET
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!