title: RxJava delay for each item of list emitted
body: <p>I'm struggling to implement something I assumed would be fairly simple in Rx.</p>
  
  <p>I have a list of items, and I want to have each item emitted with a delay.</p>
  
  <p>It seems the Rx delay() operator just shifts the emission of all items by the specified delay, not each individual item.</p>
  
  <p>Here's some testing code. It groups items in a list. Each group should then have a delay applied before being emitted.</p>
  
  <pre><code>Observable.range(1, 5)
      .groupBy(n -&gt; n % 5)
      .flatMap(g -&gt; g.toList())
      .delay(50, TimeUnit.MILLISECONDS)
      .doOnNext(item -&gt; {
          System.out.println(System.currentTimeMillis() - timeNow);
          System.out.println(item);
          System.out.println(" ");
      }).toList().toBlocking().first();
  </code></pre>
  
  <p>The result is:</p>
  
  <pre><code>154ms
  [5]
  
  155ms
  [2]
  
  155ms
  [1]
  
  155ms
  [3]
  
  155ms
  [4]
  </code></pre>
  
  <p>But what I would expect to see is something like this:</p>
  
  <pre><code>174ms
  [5]
  
  230ms
  [2]
  
  285ms
  [1]
  
  345ms
  [3]
  
  399ms
  [4]
  </code></pre>
  
  <p>What am I doing wrong?</p>