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
Change tracking e composition in Entity Framework
Utilizzare il metodo ExceptBy per eseguire operazione di sottrazione tra liste
Creare una libreria CSS universale: Clip-path
Escludere alcuni file da GitHub Secret Scanning
Creare una libreria CSS universale: Nav menu
Ottimizzare le performance usando Span<T> e il metodo Split
Aggiornare a .NET 9 su Azure App Service
Creare una custom property in GitHub
Utilizzare l nesting nativo dei CSS
Supportare lo HierarchyID di Sql Server in Entity Framework 8
Effettuare il log delle chiamate a function di GPT in ASP.NET Web API
Utilizzare il metodo Index di LINQ per scorrere una lista sapendo anche l'indice dell'elemento