aboutsummaryrefslogtreecommitdiffstats
path: root/node_modules/rxjs/src/internal/operators/takeUntil.ts
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/rxjs/src/internal/operators/takeUntil.ts')
-rw-r--r--node_modules/rxjs/src/internal/operators/takeUntil.ts50
1 files changed, 50 insertions, 0 deletions
diff --git a/node_modules/rxjs/src/internal/operators/takeUntil.ts b/node_modules/rxjs/src/internal/operators/takeUntil.ts
new file mode 100644
index 0000000..177141d
--- /dev/null
+++ b/node_modules/rxjs/src/internal/operators/takeUntil.ts
@@ -0,0 +1,50 @@
+import { MonoTypeOperatorFunction, ObservableInput } from '../types';
+import { operate } from '../util/lift';
+import { createOperatorSubscriber } from './OperatorSubscriber';
+import { innerFrom } from '../observable/innerFrom';
+import { noop } from '../util/noop';
+
+/**
+ * Emits the values emitted by the source Observable until a `notifier`
+ * Observable emits a value.
+ *
+ * <span class="informal">Lets values pass until a second Observable,
+ * `notifier`, emits a value. Then, it completes.</span>
+ *
+ * ![](takeUntil.png)
+ *
+ * `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
+ *
+ * ```ts
+ * import { interval, fromEvent, takeUntil } from 'rxjs';
+ *
+ * const source = interval(1000);
+ * const clicks = fromEvent(document, 'click');
+ * const result = source.pipe(takeUntil(clicks));
+ * result.subscribe(x => console.log(x));
+ * ```
+ *
+ * @see {@link take}
+ * @see {@link takeLast}
+ * @see {@link takeWhile}
+ * @see {@link skip}
+ *
+ * @param notifier The `ObservableInput` whose first emitted value will cause the output
+ * Observable of `takeUntil` to stop emitting values from the source Observable.
+ * @return A function that returns an Observable that emits the values from the
+ * source Observable until `notifier` emits its first value.
+ */
+export function takeUntil<T>(notifier: ObservableInput<any>): MonoTypeOperatorFunction<T> {
+ return operate((source, subscriber) => {
+ innerFrom(notifier).subscribe(createOperatorSubscriber(subscriber, () => subscriber.complete(), noop));
+ !subscriber.closed && source.subscribe(subscriber);
+ });
+}
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage