title: RxJS interleaving merged observables (priority queue?)
body: <p><strong>UPDATE</strong></p>
  
  <p>I think I've figured out the solution. I explain it in this video. Basically, use timeoutWith, and some tricks with zip (within zip).</p>
  
  <p><a href="https://youtu.be/0A7C1oJSJDk" rel="nofollow noreferrer">https://youtu.be/0A7C1oJSJDk</a></p>
  
  <hr>
  
  <p>If I have a single observable like this:</p>
  
  <pre><code>A-1-2--B-3-4-5-C--D--6-7-E
  </code></pre>
  
  <p>I want to put the "numbers" as lower priority; it should wait until the "letters" is filled up (a group of 2 for example) OR a timeout is reached, and then it can emit. Maybe the following illustration (of the desired result) can help:</p>
  
  <pre><code>A------B-1-----C--D-2----E-3-4-5-6-7
  </code></pre>
  
  <p>I've been experimenting with some ideas... one of them: first step is to split that stream (groupBy), one containing letters, and the other containing numbers..., then "something in the middle" happen..., and finally those two (sub)streams get merged.</p>
  
  <p>It's that "something in the middle" what I'm trying to figure out.</p>
  
  <p>How to achieve it? Is that even possible with RxJS (ver 5.5.6)? If not, what's the closest one? I mean, what I want to avoid is having the "numbers" flooding the stream, and not giving enough chance for the "letters" to be processed in timely manner.</p>
  
  <p>Probably this video I made of my efforts so far can clarify as well:</p>
  
  <ul>
  <li>Original problem statement: <a href="https://www.youtube.com/watch?v=mEmU4JK5Tic" rel="nofollow noreferrer">https://www.youtube.com/watch?v=mEmU4JK5Tic</a></li>
  <li>So far: <a href="https://www.youtube.com/watch?v=HWDI9wpVxJk&amp;feature=youtu.be" rel="nofollow noreferrer">https://www.youtube.com/watch?v=HWDI9wpVxJk&amp;feature=youtu.be</a></li>
  </ul>
  
  <p>The problem with my solution so far (delaying each emission in "numbers" substream using .delay) is suboptimal, because it keeps clocking at slow pace (10 seconds) even after the "characters" (sub)stream has ended (not completed -- no clear boundary here -- just not getting more value for indeterminate amount of time). What I really need is, to have the "numbers" substream raise its pace (to 2 seconds) once that happen.</p>