导致副作用和返回对象的Scala-idiomatic方法是什么?目前我有
def fun: Future[Option[A]] = {
val result = {// code returning a Future[Option[A]]}
result.map{_.foreach(doSomething())}
result
}
但我确信有更好的方法可以做到。
答案 0 :(得分:1)
查看Future.onComplete(ScalaDoc)
def fun: Future Future[Option[A]] = {
val result = {// code returning a Future[Option[A]]}
result.onComplete(r => doSomething())
result
}
答案 1 :(得分:0)
我认为习惯性的Scala方式是使用andThen,这是专门用于引起副作用。
def fun: Future[Option[A]] = {
{// code returning a Future[Option[A]]}
.andThen{_.foreach(doSomething())}
}