カテゴリー
【Rxjsワンポイント講座】mergeMapのconcurrentパラメータでプロセスの同時実行数を制限する
※ 当ページには【広告/PR】を含む場合があります。
2025/03/19
concurrent
bufferCountではダメなのか?
import { interval, bufferCount } from 'rxjs';
//👇1秒間ごとにカウント数を流す
interval(1000).pipe(
//👇指定した数だけ、流れてきた値をとり貯め、フルになったら逐次下流に流す
bufferCount(3)
).subscribe(val =>
console.log(val)
);
[0,1,2] --> [3,4,5] --> ...
mergeMapのconcurrentパラメータ
concurrent
Infty
import { of, delay, mergeMap } from 'rxjs';
//👇数値を流す
const a$ = of(1,2,3,4,5,6,7,8,9,10).pipe(
//👇何かしらの処理を想定...100ms遅延程度
delay(100)
).subscribe(val =>
console.log(val)
);
const b$ = of(1,2,3,4,5,6,7,8,9,10).pipe(
//👇同時実行数を最大3に設定
mergeMap(v => of(v), 3),
).subscribe(val =>
console.log(val)
);
a$
b$
1 -> 2 -> ... -> 10
a$


まとめ
記事を書いた人
ナンデモ系エンジニア
主にAngularでフロントエンド開発することが多いです。 開発環境はLinuxメインで進めているので、シェルコマンドも多用しております。 コツコツとプログラミングするのが好きな人間です。
カテゴリー