问题标签 [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.
scala - Sequential execution of IO from Future
I have simple combinations of two IO with sending message to Telegram bot
def send:Future[Message] = request(SendMessage(chatID, msg))
How to combine IO in greeting
to get output "second" after "first" every time.
I tried to use *>, flatMap, IO.fromFuture but the result was different.
scala - 解析 Seq[Future[Either[A, Seq[B]]]] - Scala Cats
我在尝试解决方法的结果时遇到问题。更具体地说,我有:
def methodA(): Future[Either[Error, Seq[A]]]
在某些时候,我想为列表的每个元素调用此方法并合并结果。像这样的东西:
你知道我该如何解决Seq[Future[Either[Error, Seq[A]]]]
吗?
所以我最终想要的是
Future[Either[Error, Seq[A]]]
一个包含整个列表结果的序列。
scala - WebSocket 端点中的“Spawn”并发效果
我有以下代码:
createService
是一个创建新服务的函数。创建新服务是一个非常复杂的过程,它涉及触发 CI 管道,等待它们完成,然后以相同的方式触发更多 CI 管道。它接收到的队列将用于向浏览器报告当前正在执行的操作。
我想同时“生成” createService 并让它运行直到完成。但是同时我想立即将 WebSocket 返回给客户端。Aka 我不能在“生成”createService 时阻止。
我被困住了。我只能考虑使用shift
,但这意味着 for comprehension 中的下一行将阻止等待createService
完成,然后将 websocket 返回给客户端。
我的方法错了吗?我究竟做错了什么?
scala - 使用 cat-effect 中的种族可防止应用退出
我有一个简单的猫效应应用程序,它从作为参数给出的 URL 下载站点。在下载应用程序期间,应该通过将点 ( .
) 写入控制台来显示“加载栏”。我通过两个IO的竞赛来实现它,一个用于下载另一个用于显示点。
这是scastie上的整个应用程序。
最重要的部分在这里:
一切都按我的预期工作,当我运行它时,我得到:
............. 从https://www.scala-lang.org下载的站点。下载内容的大小为 47738。
唯一的问题是应用程序永远不会退出。
据我检查加载器 IO被正确取消。我什至可以添加如下内容:
并???
显示出来。
此外,当我删除race时,应用程序会正确退出。
所以我的问题是如何解决这个问题并让我的应用程序最终退出?
scala - 如何使用 IO monad 编写猫的理解力
我有以下代码:
这并不完全准确,但我发布了整个块来解释问题。
在这里,我对值进行了许多转换以产生 IO 并将其转换为 StateT。有没有更聪明的方法来做到这一点?也许我应该以某种方式将 io 任务与主要算法分开,即与这个理解分开?或者我应该这样做吗?
scala - 如何从猫状态创建猫 IO monad
我正在与猫一起工作,我想将我的转换val x: State[A, B]
为StateT[IO, A, B]
. 注意:IO 来自于猫的效果。
如何优雅地做到这一点?
scala - 理解 Scala FP 库
只是为了让那些想要开始使用 Scala FP 库的人快速清晰地了解如何在纯 FP 方面变得更好。
有人会澄清 Cats 和 Cats-Effect、Cats-Effects IO 之间的区别/关系吗?最重要的是,Zio 和 Monix 对此有何立场?最后,与 ScalaZ 7/8 有什么关系?
到目前为止,根据我所阅读的内容,基于可用文档的库的良好组合以及它们所做的将是 Cats,然后是 Cats-Effect 和可与 Cats-effects 一起使用的 ZIO?但我不太明白为什么,我想为自己设定一条好道路,让自己在保持生产力的同时学习成为更好的 FP 程序员,并且在开始做出选择之前不必完成“Scala 中的 FP 编程”。
scalaz - IO Monad 与 Reader Monad
我想知道 IO Monad 和 Reader monad 之间有什么关系吗?
Reader monad 中的 Environment 可以产生影响吗?如果是这样,ZIO 或 Cats IO,scalaz-effects 如何处理 Reader Monad 原则?
scala - Http4s 客户端/资源的集成测试
我正在使用 Http4s 客户端在 Scala 中实现一个Vault 客户端。
我现在开始编写集成测试。到目前为止,我有这个:
然后我的测试看起来像这样(只显示一个测试):
这种方法有效,但感觉不对。对于每个测试,我都打开连接 ( clientResource.use
) 并重新创建VaultClient
.
有没有办法让我为 SysSpec 中的所有测试重用相同的连接和客户端。
请注意,这些是集成测试,而不是单元测试。
fs2 - http4s 收到过早的 EOF
我想实现一个http4s服务器,它从另一个服务接收内容,处理它并返回响应。
原始服务使用重定向,所以我添加了Follow 重定向中间件。我还添加了 Logger 中间件来检查生成的日志。
服务的骨架是:
当我尝试使用 curl 访问服务时:
响应包含原始内容的第一部分,并以:
查看日志,它们包含以下行:
这表明接收过早的 EOF 时出错。
我在这个问题上找到了一个可能的答案:但答案建议使用不推荐使用的方法,如 tohttpService。
我想我需要使用流重写代码,但我不确定更惯用的方法是什么。一些建议?