You can create an already established future without creating a closure using Future.successful[T](result: T) , so maybe Future.successful(None) is what you want.
Since futures already distinguish between success and failure regardless of their type parameter, however, you can also signal failure through Future.failed(new Exception("No query string")) , given that your asynchronous call may also omit the wrapper in Some .
source share