takeUntil
signature: takeUntil(notifier: Observable): Observable
takeUntil(notifier: Observable): Observable넘겨받은 옵저버블이 값을 발생시킬 때까지 값을 발생시킵니다.
💡 구체적인 갯수의 값이 필요하면, take를 살펴보세요!
예시
예시 1: 타이머가 값을 발생시키기 전까지 값을 받습니다
( StackBlitz | jsBin | jsFiddle )
// RxJS v6+
import { interval, timer } from 'rxjs';
import { takeUntil } from 'rxjs/operators';
//매 1초마다 값을 발생시킵니다
const source = interval(1000);
//5초 뒤, 값을 발생시킵니다
const timer$ = timer(5000);
//타이머가 5초 뒤 값을 발생시키면, 완료시킵니다
const example = source.pipe(takeUntil(timer$));
//결과: 0,1,2,3
const subscribe = example.subscribe(val => console.log(val));예시 2: 첫 5개의 짝수를 받습니다
( StackBlitz | jsBin | jsFiddle )
예시 3: 마우스가 올라갈 때까지, 마우스가 내려가는 마우스 이벤트를 받습니다
( StackBlitz )
관련 사용법
추가 자료
takeUntil 📰 - 공식 문서
Avoiding takeUntil leaks - Angular in Depth
Stopping a stream with takeUntil 📹 💵 - John Linquist
Build your own takeUntil operator 📹 - Kwinten Pisman
📂 Source Code: https://github.com/ReactiveX/rxjs/blob/master/src/internal/operators/takeUntil.ts
Last updated
Was this helpful?