W3cubDocs

/RxJS

takeUntil

function stable

Emits the values emitted by the source Observable until a notifier Observable emits a value.

takeUntil<T>(notifier: Observable<any>): MonoTypeOperatorFunction<T>

Parameters

notifier

The Observable whose first emitted value will cause the output Observable of takeUntil to stop emitting values from the source Observable.

Returns

MonoTypeOperatorFunction<T>: An Observable that emits the values from the source Observable until such time as notifier emits its first value.

Description

Lets values pass until a second Observable, notifier, emits a value. Then, it completes.

takeUntil marble diagram

takeUntil subscribes and begins mirroring the source Observable. It also monitors a second Observable, notifier that you provide. If the notifier emits a value, the output Observable stops mirroring the source Observable and completes. If the notifier doesn't emit any value and completes then takeUntil will pass all values.

Example

Tick every second until the first click happens

import { fromEvent, interval } from 'rxjs';
import { takeUntil } from 'rxjs/operators';

const source = interval(1000);
const clicks = fromEvent(document, 'click');
const result = source.pipe(takeUntil(clicks));
result.subscribe(x => console.log(x));

See Also

© 2015–2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors.
Code licensed under an Apache-2.0 License. Documentation licensed under CC BY 4.0.
https://rxjs.dev/api/operators/takeUntil