问题标签 [cats-effect]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
672 浏览

scala - 当 IO 卡在中间时如何编写 doobie 事务

我想编写一个基本的 doobie 读/写事务,但关键是IO中间有一个返回调用。我想做这样的事情:

但我无法在IO. 因此,在第二种情况下,我会被卡住,IO[ConnectionIO[Something]]这意味着我的交易最终会像ConnectionIO[IO[ConnectionIO[Something]].

我想要的是一个ConnectionIO[IO[Something]]我可以在单个事务中运行的结果,IO[IO[Something]]然后我可以轻松地将其展平。(我不想运行IO。)有意义吗?知道这是否有可能实现吗?

0 投票
1 回答
1047 浏览

scala - Scala:http4s 为在 curl/requests 中工作的相同请求提供 401 Unauthorized

我尝试使用以下代码http4s v0.19.0

我收到以下错误:

不仅如此,我的程序从未退出(我是否必须关闭某些客户端!?)即使我连接了一个日志中间件,它也从未打印过请求

我接下来尝试了@li-haoyi 的请求库,没有返回错误:

上面的代码同样适用,uri所以baseToken不可能是我的令牌是错误的。可以肯定的是,我尝试了 curl:

此问题也发生在http4s v0.18.19(即使使用显式Json和接受标头):

所以我的问题是:

  1. 为什么两者都requests工作curlhttp4s给我 401 相同的请求?
  2. 为什么我的http4s版本永远不会退出?
  3. 为什么请求记录器中间件不记录请求?
0 投票
2 回答
1156 浏览

scala - 猫效应:如何将 Map[x,IO[y]] 转换为 IO[Map[x,y]]

我有一个这样的字符串到 IO 的映射Map[String, IO[String]],我想把它转换成IO[Map[String, String]]. 怎么做?

0 投票
1 回答
4588 浏览

scala - 在 http4s 版本 19.0.0 中找不到 ContextShift[cats.effect.IO] 的隐式值

我有一个使用ciris进行配置管理的 http4s 项目。

该项目在 github中

当我编译我的项目时,我在这里得到以下错误

原因是我在这里缺少函数所需的隐式参数 错误告诉我使用use cats.effect.IOApp or build one with cats.effect.IO.contextShift但找不到cats.effect.IOAppcats.effect.IO.contextShift

任何帮助表示赞赏。

0 投票
1 回答
600 浏览

scala - 新版本中 fs2 (0.10.x) 中的 fs2.Scheduler 是什么

我正在将 fs2 0.10.x 版本迁移到 1.0.0 版本。

我们的代码fs2.Scheduler从 fs2 版本 0.10.x 开始使用。

我不知道较新的 fs2 版本 1.0.0 中的等价物是什么。

我在这里浏览了迁移指南,但找不到从 0.10.x 到 1.0.0 或类似内容的迁移指南。

提前致谢。

0 投票
1 回答
134 浏览

scala - 类型不匹配; 在 sbt 中添加 scalac 选项 -Ypartial-unification 后发现:cats.Show[shapeless.CNil] 需要:cats.Show[A]

我有以下代码。

我必须在 build.sbt 中添加 scalac 选项-Ypartial-unification来解决另一个问题,添加后我得到另一个之前没有发生的异常(没有标志)。

错误是 -

如何解决此错误?

0 投票
1 回答
362 浏览

scala - 猫效应:如何获得隐式 NonEmptyParallel

我正在尝试使用 parMapN 函数,但无法编译代码。如果我的类型是 IO 那么没有问题,但是当我在我的函数上使用类型时,我无法让它工作。

在下面的代码片段中,有 randomMessage 可以正确编译和运行,但调用 randomMessageF 不会编译,因为范围上没有隐式 NonEmptyParallel。但是,哪个隐式正在使用 randomMessage?传递 contextShift 也不起作用。

0 投票
1 回答
2330 浏览

scala - 猫效应——独立效应的平行组合

我想组合IO应该并行独立运行的多个值。

正如我所看到的,我必须选择:

  1. 使用具有分叉连接模式的猫效应纤维 /li>
  2. Parallel实例用于IOwith parMapN(或其同级之一,如,parTraverse等) parSequenceparTupled/li>

不确定每种方法的优缺点,以及何时应该选择其中一种。当对效果类型进行抽象时,这变得更加棘手IO(无标签最终样式):

typeclassParallel需要 2 个类型构造函数,使用起来有点麻烦,没有上下文边界,并且有一个额外的 vague 类型参数G[_]

感谢您的指导:)

阿弥陀佛

0 投票
1 回答
1170 浏览

scala - 在 monad 中工作时如何编写尾递归函数

一般来说,在“内部”单子中工作时,我很难弄清楚如何编写尾递归函数。这是一个简单的例子:

这是来自我正在编写的一个小型示例应用程序,以更好地理解 Scala 中的 FP。首先提示用户输入一个Team由 7Player秒组成的。这个函数递归地读取输入:

现在我想要实现的(主要用于教育目的)是能够@tailrecdef go(team: Team). 但是我不认为有可能将递归调用作为我的最后一个语句,因为据我所知,最后一个语句总是必须将我的“提升”Team到 IO 单子中。

任何提示将不胜感激。

0 投票
1 回答
2061 浏览

scala - scala 猫模棱两可的隐含值

但是我从编译器中得到了这个神秘的错误