title: Name that technique (it may be called 'piggybacking')
body: <p>What is the name of the following method/technique (I'll try to describe the best I could, background on "memoization" is probably needed to understand why this technique can be <em>very</em> useful):</p>
  
  <p>You start some potentially lenghty asynchronous computation and you realize that an identical computation has already been started <em>but is not done yet</em> and you "piggyback" on the first computation. Then when the first computation ends, it issues not one but two callbacks.</p>
  
  <p>The goal is to not needlessly start a second computation because you know that there's already an identical computation running.</p>
  
  <p>Note that altough not entirely dissimilar, I'm not looking for the particular case of caching that "memoization" is: memoization is when you start a computation and find a cached (memoized) result of that same computation <em>that is already done</em> that you can reuse.</p>
  
  <p>Here I'm looking for the name of the technique that is in a way a bit similar to memoization (in that it is can be useful for some of the same reasons that memoization is a useful technique), except that it reuses the result of the first computation <em>even if the first computation is not done yet</em> at the time you issue the second computation.</p>
  
  <p>I've always called that technique "piggybacking" but I don't know if this is correct.</p>
  
  <p>I've actually used this more than once as some kind of "memoization on steroids" and it came very handy.</p>
  
  <p>I just don't know what the name of this (advanced ?) technique is.</p>
  
  <p><strong>EDIT</strong></p>
  
  <p>Damn, I wanted to comment on epatel's answer but it disappeared. epatel's answer gave me an idea, this technique could be called <em>"lazy memoization"</em> :)</p>