javascript / expert
Snippet
Explizites Ressourcen-Lifecycle-Management mit DestroyRef
DestroyRef, eingeführt in Angular 16, bietet eine funktionale Alternative zum ngOnDestroy-Lifecycle-Hook. Es ermöglicht Entwicklern, Cleanup-Logik direkt in dem Scope zu registrieren, in dem eine Ressource initialisiert wird, wodurch das Risiko von Memory Leaks in Services oder Funktionen ohne traditionellen Lifecycle reduziert wird.
snippet.js
1
2
3
4
5
6
7
8
9
10
11
12
13
@Injectable()export class WebSocketService {private destroyRef = inject(DestroyRef);connect(url: string) {const socket = new WebSocket(url);this.destroyRef.onDestroy(() => {socket.close();console.log('Socket cleaned up');});}}
angular
Erklärung
1
private destroyRef = inject(DestroyRef);
Ruft die Zerstörungsreferenz für den aktuellen Injektionskontext (Komponente, Direktive oder Service) ab.
2
this.destroyRef.onDestroy(() => {
Registriert eine Callback-Funktion, die automatisch ausgeführt wird, wenn der Kontext zerstört wird.