Skip to content

takeUntil ​

De takeUntil operator blijft abonneren op de originele Observable totdat de gespecificeerde Observable (meldingstrigger) zijn eerste waarde uitzendt. De originele Observable wordt afgemeld op het moment dat de meldingstrigger uitzendt.

🔁 Basissyntax ​

ts
source$.pipe(
  takeUntil(notifier$)
)
  • source$: Originele Observable (abonnementsdoel)
  • notifier$: Observable die stop signaleert (abonnement stopt wanneer deze Observable zijn eerste waarde uitzendt)

🌐 RxJS Officiële Documentatie - takeUntil

🧪 Gebruiksvoorbeeld: Stop abonnement bij knopklik ​

ts
import { interval, fromEvent } from 'rxjs';
import { takeUntil } from 'rxjs';

const stopButton = document.createElement('button');
stopButton.textContent = 'stop';
document.body.appendChild(stopButton)

const stop$ = fromEvent(stopButton, 'click');
const source$ = interval(1000); // Geef elke seconde een nummer uit

source$
  .pipe(takeUntil(stop$))
  .subscribe((val) => console.log(`Waarde: ${val}`));

📌 Wanneer er op stopButton wordt geklikt, stopt het abonnement op source$ op dat moment.

✅ Veelvoorkomende use cases ​

  • Wanneer u HTTP-verzoeken of polling-processen wilt stoppen met een annuleerknop
  • Wanneer u een component wilt afmelden volgens zijn levenscyclus
  • Wanneer u asynchrone verwerking wilt beëindigen door paginatransitie of unmounting

🔗 Gerelateerde operators ​

  • take: Neem waarden tot een bepaald aantal keren
  • first: Haal alleen het eerste geval op en stop
  • skipUntil: Negeer totdat een bepaalde Observable een waarde uitzendt

Uitgebracht onder de CC-BY-4.0 licentie.