title: What does RxJS.Observable debounce do?
body: <p>Can anybody explain in plain English what <a href="https://github.com/Reactive-Extensions/RxJS/blob/master/doc/api/core/operators/debounce.md" rel="nofollow noreferrer">RxJS Observable debounce function</a> does?</p>
  
  <p>I imagine it emits an event once in a while depending on the parameters, but my code below doesn't work as I expected.</p>
  
  <pre class="lang-js prettyprint-override"><code>var x$ = Rx.Observable.fromEvent(window, 'click')
      .map(function(e) {return {x:e.x, y:e.y};})
      .debounce(1000)
      .subscribe(function(el) {
        console.log(el);
      });
  </code></pre>
  
  <p>and <a href="http://jsbin.com/visiwi/edit?js,console,output" rel="nofollow noreferrer">the JsBin version</a>.</p>
  
  <p>I expected that this code would print one click once per second, no matter how fast I am clicking. Instead it prints the click at what I think are random intervals.</p>