DestroyRef • Angular

@angular/core

DestroyRef lets you set callbacks to run for any cleanup or destruction behavior. The scope of this destruction depends on where DestroyRef is injected. If DestroyRef is injected in a component or directive, the callbacks run when that component or directive is destroyed. Otherwise the callbacks run when a corresponding injector is destroyed.

API

    
      abstract class DestroyRef {  abstract onDestroy(callback: () => void): () => void;  abstract readonly destroyed: boolean;}
    
    

onDestroy

() => void

Registers a destroy callback in a given lifecycle scope. Returns a cleanup function that can be invoked to unregister the callback.

@returns() => void

Usage notes

Example

const destroyRef = inject(DestroyRef);// register a destroy callbackconst unregisterFn = destroyRef.onDestroy(() => doSomethingOnDestroy());// stop the destroy callback from executing if neededunregisterFn();

destroyed

boolean

Indicates whether the instance has already been destroyed.