개발/Node & Javascript
[RxJS] bufferCount 써보기
말고기
2022. 5. 8. 20:45
728x90
반응형
개요
- stream으로 값을 불러오는 경우 여러개의 값을 bulk로 처리하고 싶을 때가 있다.
- 이 때 bufferCount를 통해서 여러값을 처리하도록 만들어 보자.
예제
- test generator를 생성한다.
const sleep = async function (ms: number): Promise<void> {
return new Promise(resolve => {
setTimeout(resolve, ms);
});
}
const doBackground = async (count: number, subscriber: Subscriber<number>) => {
for (let i = 0; i < count; i++) {
if (count % 4 == 0) {
await sleep(10);
};
subscriber.next(i);
}
subscriber.complete();
};
const generator = (count: number): Observable<number> => {
return new Observable( subscriber => {
doBackground(count, subscriber).then(console.log).catch(console.error);
return ;
});
};
- bufferCount를 통해서 묶어서 처리해준다.
from(generator(1000))
.pipe(
bufferCount(100),
map((items) => console.log(items)),
).subscribe({
error: (error) => console.error('error', error),
complete: () => console.log('end')
});
728x90
반응형