如何为未来的仿函数提供执行上下文?

How to provide an execution context to a future functor?

使用 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 以便它可以从调用范围获取执行上下文?我不想在每个调用 class 而不是在包中创建一个新的实现。我正在将我的执行上下文依赖注入到我的 classes 中,所以只在此处导入全局变量并不实际。谢谢

也许是这个?

implicit def futureFunctor (implicit ec: ExecutionContext): Functor[Future] = ...