【发布时间】:2017-01-31 14:51:34
【问题描述】:
我正在查看一些开源 scala 项目。我看到有些人正在做类似的事情:
abstract class Foo{
def create(implicit ex: ExecutionContextExecutor): Seq[ResultSet] = {
Await.result(createAsync(), timeout)
}
def createAsync()(implicit ex: ExecutionContextExecutor): Future[Seq[ResultSet]] = //implementation
... more like those
}
用
调用每个方法有什么好处/坏处吗(隐式 ex: ExecutionContextExecutor) 参数而不是在类构造函数中传递 ExecutionContextExecutor:
abstract class Foo(implicit ex: ExecutionContextExecutor){
def create(timeout: FiniteDuration): Seq[ResultSet] = {
Await.result(createAsync(), timeout)
}
def createAsync(): Future[Seq[ResultSet]] = //implementation
... more like those
}
有首选吗?
【问题讨论】:
-
你能改一下标题吗?这是一个真正的问题,它将使该语言的新手受益,但我来到这里是因为标题读起来就像它主要是一篇评论文章。或者我只是因为我在这里太久而读得太多了......?
-
@wheaties 你有什么建议?
-
不知道,“ExecutionContext 应该在方法还是对象上?”听起来也很有主见。 “ExecutionContext 对方法与对象的好处?”嘎……