这是一件简单的事情,但我不知道如何在Scala中做到这一点。我想在true
中返回Future
。我使用twitter Future
。但我希望尽快回复它。像这样:
def saveOrUpdate(pageImpression: PageImpressions): com.twitter.util.Future[Boolean] = {
return com.twitter.util.Future.value(true)
count += 1
println(count)
}
但这不起作用。我怎样才能返回一些东西而且还要继续执行?这是一个HTTP服务。返回值将返回给HTTP客户端。
答案 0 :(得分:0)
我不确定我明白你究竟在寻找什么,但似乎你想要这样的东西:
def saveOrUpdate(pageImpression: PageImpressions) {
FuturePool.unboundedPool {
count += 1
println(count)
}
Future.value(true)
}
它会增加计数并将其打印在后台线程上,并使用true
返回一个直接的未来。
然而,这是一个错误的事情。我根本不推荐它。首先,它具有对可变变量的不同步访问,将导致大问题。
其次,它无条件地返回true
,无论底层操作如何(或是否)实际完成。如果您不关心执行结果,则应返回({期})Unit
,而不是Boolean
。