def fun = { val a = Future {println("Inside Future"); throw new Exception("Discomfort in the sea has pulled itself upon me"); 5} a onComplete {_ => Thread.sleep(5000); println("Inside map") } a } Above is a very simple snippet. The return type is Future. Is there a better way without storing the value of Future in a val and still have onComplete but still be able to return the Future?