Skip to main content

What does takeUntil() do?

takeUntil() is an RxJS operator that automatically completes a subscription when another stream fires.


In simple terms:

You're saying: "Listen to this stream until this other event happens."


Example:

ts
private destroy$ = new Subject<void>(); this.myStream$ .pipe(takeUntil(this.destroy$)) .subscribe(value => { console.log(value); }); // When the component is destroyed: this.destroy$.next(); // stops the subscription this.destroy$.complete();

This is handy in Angular for unsubscribing automatically in ngOnDestroy().


Without takeUntil():

You'd have to store the subscription and manually call unsubscribe().

With takeUntil(), everything happens through the stream: reactive and safe.


Where it's used:

  • In Angular components
  • When working with interval(), valueChanges, router.events, and other infinite streams

Conclusion:

takeUntil() = a way of saying: "The subscription should stay alive until a stop signal arrives."

No leaks, everything under control.

Short Answer

Interview ready
Premium

A concise answer to help you respond confidently on this topic during an interview.