2017-04-10 3 views
0

En utilisant Cats, j'ai mes déclarations de foncteurs dans un objet de paquet. Cela fonctionne très bien, à l'exception du futureFunctor, car elle nécessite une implicite ExecutionContext:Comment fournir un contexte d'exécution à un futur foncteur?

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 
    } 

    ... 
} 

est-il un moyen de mettre en œuvre futureFunctor telle qu'elle peut acquérir le contexte d'exécution de la portée d'appel? Je détesterais avoir à créer une nouvelle implémentation dans chaque classe d'appel au lieu de dans le paquet. Je suis en train d'injecter des dépendances dans mes contextes d'exécution, donc importer le global n'est pas vraiment pratique. Merci.

Répondre

1

Peut-être que cela?

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

Merci. Je suis un idiot. – Lasf