使用Cats,我在包对象中有我的函子声明。这项工作正常,futureFunctor
除外,因为它需要隐式ExecutionContext
:
package object util {
implicit val futureFunctor: Functor[Future] = new Functor[Future] {
//requires execution context:
def map[A, B](fa: Future[A])(f: A => B): Future[B] = fa map f
}
...
}
有没有办法实现futureFunctor
,以便它可以从调用范围获取执行上下文?我不想在每个调用类中而不是在包中创建一个新的实现。我是依赖项 - 将我的执行上下文注入到我的类中,所以在这里导入全局并不实际。感谢。
答案 0 :(得分:1)
也许这个?
implicit def futureFunctor (implicit ec: ExecutionContext): Functor[Future] = ...