0 Tage Serie
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
javascript
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.