デバウンスは、別の値が発行されずに指定された時間間隔が経過した後に値を発行します。
簡単な図を使用すると、以下がより役立つ場合があります。
Stream 1 | ---1-------2-3-4-5---------6----
after debounce, the emitted stream looks like as follows:
Stream 2 | ------1-------------5---------6-
中間項目 (この場合は 2、3、4) は無視されます。
以下に例を示します。
var Rx = require('rx-node');
var source = Rx.fromStream(process.stdin).debounce(500);
var subscription = source.subscribe(
function (x) {
console.log('Next: %s', x);
}
);
これを説明するためにノードを使用しました...ノードがインストールされていると仮定すると、次のように入力して実行できます
$node myfile.js (where the aforementioned code is in myfile.js)
このノード プログラムが開始されると、コンソールで値を入力できます。すばやく入力すると項目は無視され、断続的に入力すると、コンソールで入力のギャップの後に速くて遅い項目が表示されます (上記の例では 500 ミリ秒あります)。 ("次: ")
https://github.com/Reactive-Extensions/RxJS/blob/master/doc/api/core/operators/debounce.mdにもいくつかの優れた参考資料があります。