0

我按照 cat IO 网站上的说明并行运行一系列效果:

我的代码如下所示:


    val maybeNonEmptyList: Option[NonEmptyList[Urls]] = NonEmptyList.fromList(urls)

    val maybeDownloads: Option[IO[NonEmptyList[Either[Error, Files]]]] = maybeNonEmptyList map { urls =>
      urls.parTraverse(url => downloader(url))
    }

但我得到一个编译时错误说:

value parTraverse is not a member of cats.data.NonEmptyList[Urls]
[error]       urls.parTraverse(url => downloader(url))

我已经导入了以下内容:

import cats.data.{EitherT, NonEmptyList}
import cats.effect.{ContextShift, IO, Timer}
import cats.implicits._
import cats.syntax.parallel._

而且我还有以下暗示:

    implicit val cs: ContextShift[IO] = IO.contextShift(ExecutionContext.global)
    implicit val timer: Timer[IO]     = IO.timer(ExecutionContext.global)

为什么我仍然遇到问题?

4

1 回答 1

0

这是因为隐式浓缩被导入两次,所以它变得模棱两可

import cats.implicits._
import cats.syntax.parallel._

在最新版本的猫implicits中,从不需要导入,只有syntax

推荐的模式是只做import cats.syntax.all._

于 2022-02-24T21:03:46.813 回答