pipeTo ActorRef.
import akka.pattern.pipe
val originalSender = sender
val res : Future[\/[Throwable,String] ] = MyService.saveValues(list)
res pipeTo originalSender
saveValues , -, .
- Future[Future[A]], Future[A] sequencing/traversing - , "flatMap ".
import ExecutionContext.Implicits.global
val foo: Future[Future[Int]] = ???
val bar: Future[Int] = foo.flatMap(identity)
scalaz ( scalaz.contrib if on scalaz 7.0.x), join, .
import scalaz.syntax.monad._
import scalaz.contrib.std.scalaFuture._
val bar2: Future[Int] = foo.join