如何用JS的Rx扩展缓冲事件

时间:2012-01-05 20:00:15

标签: reactive-extensions-js

我不想从输入中获取文本更改事件,但将其限制为每秒3次。

Rx支持我的愿望?我怎样才能达到这个能力?

1 个答案:

答案 0 :(得分:0)

假设您已经拥有Observeable,请在消费之前插入对throttle(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)); 
        }
   );
 });