【发布时间】:2014-12-10 16:50:40
【问题描述】:
我正在尝试使用 Scalaz 的应用构建器来简化一些并行运行多个期货的代码:
import scalaz._, Scalaz._
val fooF: Future [String] = myService.getFoo ()
val barF: Future [String] = myService.getBar ()
val resultF = for {
foo <- fooF
bar <- barF
}
yield { foo + bar }
我知道我应该能够像这样重写上面的代码:
val resultF = (myService.getFoo () |@| myService.getBar ()) {
(foo, bar) => { foo + bar }
}
但是我收到以下编译错误:
value |@| is not a member of scala.concurrent.Future[String]
我做错了什么?
【问题讨论】:
-
哪个期货?斯卡拉期货?斯卡拉兹期货?别的东西?如果是 scala 期货,那么 scalaz 是什么版本?旧版本的 scalaz 没有 scala.concurrent.Future 类型类实例,您必须为它们导入 scalaz-contrib 库。