Debounce gibt einen Wert aus, nachdem ein angegebenes Zeitintervall abgelaufen ist, ohne dass ein anderer Wert ausgegeben wird.
einfache Diagramme, die die folgende Verwendung von mehr Hilfe bieten kann:
Stream 1 | ---1-------2-3-4-5---------6----
after debounce, the emitted stream looks like as follows:
Stream 2 | ------1-------------5---------6-
Die Zwischenpositionen (in diesem Fall 2,3,4) ignoriert werden.
Ein Beispiel unten veranschaulicht:
var Rx = require('rx-node');
var source = Rx.fromStream(process.stdin).debounce(500);
var subscription = source.subscribe(
function (x) {
console.log('Next: %s', x);
}
);
I Knoten dieses ... zu veranschaulichen verwendet vorausgesetzt, Sie Knoten installiert haben, können Sie es laufen durch
$node myfile.js (where the aforementioned code is in myfile.js)
Sobald dieser Knoten Programm eingeben ist gestartet können Sie Werte an der Konsole eingeben - wenn Sie schnell eingeben, werden Elemente ignoriert, und wenn der Typ zeitweise schnell und langsam Elemente nach einer Lücke in der Eingabe erscheinen (im obigen Beispiel habe ich 500ms) an der Konsole ("Weiter:")
Es gibt auch einige ausgezeichnete Referenzmaterial bei https://github.com/Reactive-Extensions/RxJS/blob/master/doc/api/core/operators/debounce.md
FYI die [rxmarbles Website] (http://rxmarbles.com/#debounce) kann helfen. Es ist ein work in progress und hat nicht alle Operatoren, aber es hat "entprellen" :) – Brandon
@Brandon gibt es einen Link in meiner Antwort :-) – zerkms