RxJS 2度クリック防止
よくある「非同期通信が走るボタンクリックで、2度押し禁止」。
RxJSはexhaustMapで対応できる。
わざわざフラグ用の変数を作る必要がない。
const rx = require('rxjs'); const op = require('rxjs/operators'); rx.interval(100).pipe(op.take(5)) .pipe( op.exhaustMap(v => rx.of(v).pipe(op.delay(200))) // 0, 2, 4 と表示される // 1, 3 はキャンセルされる ) .subscribe(cl)