Open snaag opened 2 years ago
elementAt(N)
에서 N 은 0부터 센다.scan
, reduce
의 차이는 매 연산 결과를 출력하냐 or Not 이다.zip
은 여러 observable 을 동시에 출력할 수 있다. 2개 이상도 가능하다. 가장 먼저 끝나는 observable 에 맞춘다.
const obs1$ = interval(2000);
const obs2$ = range(1, 3);
zip(obs1$, obs2$)
.subscribe((res) => {
console.log(res);
})
toArray
는 배열로 만들어준다. (observable 생성 함수 아님, operator 임)interval
, fromEvent
와 같이 끝이 없는 observable 생성 함수의 경우, takeLast
를 단독으로 못쓴다. (당연하다. 끝이 없으니까.)
take
를 먼저 써줘야 한다. (못쓴다기보단 출력이 안됨)
interval(800)
.pipe(
take(10),
takeLast(3)
)
.subscribe((res) => {
console.log('>>>', res); // 한 번에 출력됨
});
takeUntil
은 인자로 들어오는 observable 이 실행되기 전 까지 구독한다.
const until$ = timer(2000); //* 2초 뒤에 발행되는 observable
interval(500)
.pipe(
takeUntil(until$)
)
.subscribe((res) => {
console.log('>>>>', res);
});
//* 따라서, 2초까지 (timer(2000)) console.log('>>>>', res); 가 출력되고, 그 후에 종료된다.
skipWhile(fn)
은, fn(조건) 을 만족하는 애들만 살린다.
range(0, 30)
.pipe(
skipWhile(x => x <= 20)
)
.subscribe((res) => {
console.log('>', res);
});