Skip to content

Instantly share code, notes, and snippets.

@meetumaltiar
Created January 18, 2013 02:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save meetumaltiar/4561789 to your computer and use it in GitHub Desktop.
Save meetumaltiar/4561789 to your computer and use it in GitHub Desktop.
Composing Futures
import akka.dispatch.Future
import akka.actor.ActorSystem
object FutureMonadic extends App {
implicit val system = ActorSystem("future")
val startTime = System.currentTimeMillis
// we construct List[Future[Int]]
val futureList = List(1, 2, 3) map { case number => Future(timeTakingIdentityFunction(number)) }
val future = Future.sequence(futureList)
future onSuccess {
case results =>
val elapsedTime = ((System.currentTimeMillis - startTime) / 1000.0)
println("Sum of 1, 2 and 3 is " + results.sum + " calculated in " + elapsedTime + " seconds")
}
def timeTakingIdentityFunction(number: Int) = {
Thread.sleep(3000)
number
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment