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
Centralizzare e governare MCP server e Skill con Azure API Center
Leggere i parametri da riga di comando in una file based app .NET
Ottimizzare gli indici con Automatic Index Compaction in Azure SQL Database
Nuove validazioni Form Blazor
Gestione opzioni colonna nella Blazor QuickGrid
Importare repository da Bitbucket a GitHub Enterprise Cloud
Utilizzare @property per animare nativamente un oggetto HTML tramite CSS
.NET Aspire vs Dapr: differenze, sovrapposizioni e integrazione
Response streaming con Blazor e .NET 10
Cambiamenti in OpenAPI per la documentazione di ASP.NET
Utilizzare noopener e noreferrer nei link HTML
Utilizzare i command service nei test con .NET Aspire


