Skip to content

Instantly share code, notes, and snippets.

@srenault
Created April 28, 2014 09:04
Show Gist options
  • Save srenault/11366199 to your computer and use it in GitHub Desktop.
Save srenault/11366199 to your computer and use it in GitHub Desktop.
object Utils {
import scala.concurrent.duration._
import play.api.libs.concurrent.Promise
import play.api.libs.iteratee.{ Enumerator, Iteratee }
def sequence[A, B](seq: Seq[A])(f: A => Future[B]): Future[Seq[B]] = {
val enumerator = Enumerator[A](seq: _*)
val consummer = Iteratee.foldM[A, Seq[B]](Seq.empty[B]) {
case (acc, i) => f(i).map(t => t +: acc)
}
enumerator.run(consummer)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment