问题标签 [zio]
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 - 处理 scala ZIO 中的错误
我想使用 catchAll 或 catchSome 处理 ZIO 中的一些异常,如下所示:
如果我传递了有效的格式号,代码成功,但如果我传递了无效的格式和想法,它无法处理异常??
scala - 带有 Http 请求的断路器 monix
我正在努力使 Monix 的断路器与我在服务中收到的一些请求异步工作,并且失败了,因此它应该激活断路器,即使打开它也必须呈现请求。
这是我的代码
似乎什么时候异步在AsyncResponse
断路器回调中使用时打开,被下一个到达的请求覆盖,然后我的服务卡住并且没有更多的请求可以到达。
到目前为止,唯一的解决方案是运行它同步,但这不是一个选项,因为它必须是 NIO
scala - ZIO:如何只计算一次?
我正在使用 ZIO:https ://github.com/zio/zio
在我的build.sbt
:
无论我尝试了什么,每次我需要时都会计算我的结果:
对于此示例,日志如下所示:
我试过Promise
:
我遇到了同样的问题:
我试过了
首先,我在想也许管道已执行,但没有重新计算值,但我也不工作。
我希望能够异步计算我的值并能够重用它们。我查看了如何使 Scalaz ZIO 变得懒惰?但这对我也不起作用。
scala - 如何优雅地使用 ZIO 并行执行多个效果
我知道我可以使用
并行执行 3 或 4 个任务,但如果有更优雅的解决方案,我会感到困惑吗?
scala - 为什么用磨机运行 ZIO 应用程序不起作用?
我从zio.dev设置了简单的 ZIO 应用程序。
在 Intellij 中/与Intellij一起运行时,它按预期工作。
但是用磨机运行它却没有。
name <- getStrLn
不执行。
这里是build.sc
我错过了什么?
scala - ZIO 在并行操作上与 Cats 互操作
ZIO
不依赖于Cats
,因此它有自己的方法来执行sequence
操作: ZIO.sequencePar
和ZIO.sequence
.
我尝试使用sequence
interop 提供的Cats
,它的工作方式与以下相同ZIO.sequence
:
我可以让ZIO
Treat sequence
as ZIO.sequencePar
,所以我可以并行运行任务吗?
似乎ZIO
需要一些并行Traverse
的实现Cats
,但我找不到。
这是我的依赖项:
编辑:
在@AndreyTyukin 的帮助下,我发现要使其并行工作,我需要运行lib 中可用的typeclassList(k,k2,k3).parSequence
的使用实例。@LuisMiguelMejíaSuárez 对这个问题的评论解释了为什么我们必须使用.Parallel
zio-interop-cats
Parallel
scala - 如何从 ZIO 中的副作用代码访问光纤本地数据
我知道这FiberRef
是与 Javas 等效的纤维感知ThreadLocal
。但是,如何存储副作用代码的光纤特定信息?基本上,我正在寻找类似于monix.execution.misc.Local的东西,以便按照Oleg Pyzhcov 发布的关于使用 Monox 更好地记录日志的方向做一些事情
。
scala - 如何从副作用代码中获取当前正在执行的 ZIO 光纤的 ID
我知道我可以通过调用来获取当前正在执行的光纤的 ID
但是,我想要的是一个不纯的函数,我可以从副作用代码中调用它,让我们像这样定义它
以便
产生真实的。是否可以定义这样的函数,如果可以,如何定义?请注意,此问题与如何从 ZIO 中的副作用代码访问光纤本地数据密切相关。
scala - Scala ZIO Ref 数据类型
我在 Scala 中有一个类,其中有四个参数,其中 2 个是变量,我想使用 Zio 中的 Ref 数据类型来控制对这些变量的访问,这是我的代码:
为了访问参考我写了这个:
输出:
我想知道为什么 ref 的值不能更新为 1 而不是 0 ?
scala - Scala ZIO.bracket:处理释放资源的错误
我想创建一个目录,然后对目录做一些事情,最后删除它。我为此使用了括号成语。
删除目录显然是一个容易出错的操作。但release
功能必须始终成功。所以我必须使用ZIO.succeed
看起来错误的。
如何正确关闭资源?