Как буферизовать события с расширениями Rx для JS - PullRequest
1 голос
/ 06 января 2012

Я не хочу получать события изменения текста из ввода, но ограничить их до 3 в секунду.

Rx поддерживает мое желание? как мне достичь этой способности?

1 Ответ

0 голосов
/ 06 января 2012

Предполагая, что у вас уже есть Observable, вставьте вызов дроссельной заслонки (333), прежде чем потреблять, чтобы добиться цели. (333 = миллисекунды, что составляет 1000/3, что дает вам 3 символа в секунду).

очень простой образец:

 $(document).ready(function () {
   var mainCanvas = $("#TextBox1");
   var observable = Rx.Observable.FromHtmlEvent(mainCanvas.context, "keypress");

   var throttle = observable.throttle(333);

   throttle.subscribe(function (next) {
         $('div#test').append(String.fromCharCode( next.charCode)); 
        }
   );
 });
...