Buckets:
| 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` 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); | |
| }); | |
| } | |
Xet Storage Details
- Size:
- 1.93 kB
- Xet hash:
- 10b4f51aa192cb1c9d2580145d9a63f62cc74b1973f45fbf373b71a8ad7980c5
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.