title: Clarification needed about futures and promises in Scala
body: <p>I am trying to get my head around Scala's promise and future constructs.</p>
  
  <p>I've been reading <a href="http://docs.scala-lang.org/overviews/core/futures.html">Futures and Promises</a> in Scala Documentation and am a bit confused as I've got a feeling that the concepts of promises and futures are mixed up.</p>
  
  <blockquote>
    <p>In my understanding a promise is a container that we could populate
    value in a later point. And future is some sort of an asynchronous
    operation that would complete in a different execution path.</p>
  </blockquote>
  
  <p>In Scala we can obtain a result using the attached callbacks to future. </p>
  
  <p>Where I'm lost is how promise has a future?</p>
  
  <p>I have read about these concepts in Clojure too, assuming that promise and future have some generic common concept, but it seems like I was wrong.</p>
  
  <blockquote>
    <p>A promise p completes the future returned by p.future. This future is
    specific to the promise p. Depending on the implementation, it may be
    the case that p.future eq p.</p>
  </blockquote>
  
  <pre><code>val p = promise[T]
  val f = p.future
  </code></pre>