title: Queue events to fire every 350ms with RxJS
body: <p>I have a keyboard event that causes an animation to play. It's possible for the user to produce more events than the rate that the animation plays so I want to create a queue that will eventually empty firing one by one after a certain amount of delay.</p>
  
  <p>Desired marble diagram: </p>
  
  <pre><code>=================================================
  
  user:    START|a-b-c-----------------------------
  
  result:  START|-350ms--a--350ms--b--350ms--c-----
  
  =================================================
  </code></pre>
  
  <p>The <code>user</code> fires 3 events rapidly (<code>a</code> <code>b</code> <code>c</code>). After event <code>a</code> fires, 350ms timer starts. After that timer is finishes, the <code>result</code> fires <code>a</code> and starts another 350ms timer. After that timer is done it fires <code>b</code>. Basically, if a timer is in progress, I want to add it to the queue and emit it later. The rate cannot exceed 350ms and I want every event.</p>
  
  <p>I want to throttle the output of the events to 350ms but I don't want to use the <code>throttle</code> operator because I don't want to loose any events (I want <code>a</code>, <code>b</code>, and <code>c</code> to fire).</p>
  
  <p>A Javascript RxJS solution is preferred but I'll accept any answer with Rx operators in any language.</p>