【发布时间】:2016-12-16 16:09:47
【问题描述】:
我有一个Either[Future[A], Future[B]] 的实例,我想将其转换为Future[Either[A, B]]。
由于my previous question、cats 0.8.1 已发布,更改了库的结构并删除了Xor 以支持Either,这在2.12 中偏右。
因此,之前接受的答案中描述的方法不再起作用。我试图找到合适的进口但失败了。
cats.instances.either._
cats.implicits._
cats.syntax.bitraverse._
看起来很合理,但不幸的是不起作用。 value bisequence is not a member of Either[scala.concurrent.Future[A],scala.concurrent.Future[B]] 编译仍然失败
将导入范围扩大到 *.all._ 并没有改变编译器错误。
我使用的是 scala 2.11.8,因为并非该项目所依赖的所有库都发布了 2.12 版本
【问题讨论】:
-
either.fold(_.map(Left(_)), _.map(Right(_))),但这与猫有什么关系? -
我已经在猫 0.8.1 和 scala 2.11.8 和 2.12.1 上尝试过这个,
Either[Future[A], Future[B]]上的bisequence在这两个版本中都有效。范围内是否有隐含的ExecutionContext?Applicative[Future]需要它 -
删除了我的答案。既然我发现
Bitraverse中的任何一个都有语法和实例,那么看起来您肯定缺少导入。尝试添加import cats.syntax.either._看看是否会继续前进。 -
哦,我已经复制了你的问题。尝试只导入一次
cats.implicits._。似乎您的导入相互干扰。
标签: scala applicative either scala-cats