Scala:Return 但不要停止执行

Scala: Return but don't stop executing

这是一件简单的事情,但我不知道如何在 Scala 中做到这一点。我想 return 一个 true 一个 Future。我使用推特Future。但我想 return 尽快完成。像这样:

def saveOrUpdate(pageImpression: PageImpressions): com.twitter.util.Future[Boolean] = {
  return com.twitter.util.Future.value(true)
  count += 1
  println(count)
}

但这行不通。我如何才能 return 一些东西但又继续执行?这是一个 HTTP 服务。 return 值将 return 发送到 HTTP 客户端。

我不确定我是否理解您到底在寻找什么,但您似乎想要这样的东西:

def saveOrUpdate(pageImpression: PageImpressions) {
  FuturePool.unboundedPool { 
     count += 1
     println(count)
  }
  Future.value(true)      
}

它在后台线程上增加计数并打印出来,return不久的将来 true

然而,从更多方面来说,这是错误的做法。我根本不推荐它。首先,它对可变变量的访问是不同步的,造成大问题。

其次,它 returns true 无条件地,不管底层操作如何(或是否)实际完成。如果您不关心执行结果,您应该 return(未来)Unit,而不是 Boolean