title: Converting a Future[T] to an always-successful Future[Option[T]]
body: <p>The motivating use-case I have in mind is as follows:</p>
  
  <ul>
  <li>In a Play Framework controller, I am calling Play's <code>WS</code>. This produces a potentially-failing <code>Future</code></li>
  <li>I want to handle the separate cases of the <code>WS</code> request succeeding vs failing. In both cases, I want to produce a Play <code>Response</code> eventually (likely a <code>Future[Response]</code>)</li>
  </ul>
  
  <p>What I think I am trying to do is:</p>
  
  <ul>
  <li>Asynchronously, after the future completes, unconditionally handle the completion</li>
  <li>Produce a <code>Future[Response]</code> corresponding to the desired response</li>
  </ul>
  
  <p>I don't believe I can use <code>Future.map</code> because I need to customize the handling of the failure case and not just pass on the <code>Future</code>'s failure.</p>
  
  <p>If you have any alternative suggestions for how to solve this cleanly, please let me know.</p>