问题标签 [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.

0 投票
2 回答
2276 浏览

scala - 处理 scala ZIO 中的错误

我想使用 catchAll 或 catchSome 处理 ZIO 中的一些异常,如下所示:

如果我传递了有效的格式号,代码成功,但如果我传递了无效的格式和想法,它无法处理异常??

0 投票
0 回答
124 浏览

scala - 带有 Http 请求的断路器 monix

我正在努力使 Monix 的断路器与我在服务中收到的一些请求异步工作,并且失败了,因此它应该激活断路器,即使打开它也必须呈现请求。

这是我的代码

似乎什么时候异步在AsyncResponse断路器回调中使用时打开,被下一个到达的请求覆盖,然后我的服务卡住并且没有更多的请求可以到达。

到目前为止,唯一的解决方案是运行它同步,但这不是一个选项,因为它必须是 NIO

0 投票
2 回答
1273 浏览

scala - ZIO:如何只计算一次?

我正在使用 ZIO:https ://github.com/zio/zio

在我的build.sbt

无论我尝试了什么,每次我需要时都会计算我的结果:

对于此示例,日志如下所示:

我试过Promise

我遇到了同样的问题:

我试过了

首先,我在想也许管道已执行,但没有重新计算值,但我也不工作。

我希望能够异步计算我的值并能够重用它们。我查看了如何使 Scalaz ZIO 变得懒惰?但这对我也不起作用。

0 投票
3 回答
2158 浏览

scala - 如何优雅地使用 ZIO 并行执行多个效果

我知道我可以使用

并行执行 3 或 4 个任务,但如果有更优雅的解决方案,我会感到困惑吗?

0 投票
1 回答
244 浏览

scala - 为什么用磨机运行 ZIO 应用程序不起作用?

我从zio.dev设置了简单的 ZIO 应用程序。

在 Intellij 中/与Intellij一起运行时,它按预期工作。

但是用磨机运行它却没有。

name <- getStrLn不执行。

这里是build.sc

我错过了什么?

0 投票
0 回答
378 浏览

scala - ZIO 在并行操作上与 Cats 互操作

ZIO不依赖于Cats,因此它有自己的方法来执行sequence操作: ZIO.sequenceParZIO.sequence.

我尝试使用sequenceinterop 提供的Cats,它的工作方式与以下相同ZIO.sequence

我可以让ZIOTreat sequenceas ZIO.sequencePar,所以我可以并行运行任务吗?

似乎ZIO需要一些并行Traverse的实现Cats,但我找不到。

这是我的依赖项:

编辑:

在@AndreyTyukin 的帮助下,我发现要使其并行工作,我需要运行lib 中可用的typeclassList(k,k2,k3).parSequence的使用实例。@LuisMiguelMejíaSuárez 对这个问题的评论解释了为什么我们必须使用.Parallelzio-interop-catsParallel

0 投票
0 回答
131 浏览

scala - 如何从 ZIO 中的副作用代码访问光纤本地数据

我知道这FiberRef是与 Javas 等效的纤维感知ThreadLocal。但是,如何存储副作用代码的光纤特定信息?基本上,我正在寻找类似于monix.execution.misc.Local的东西,以便按照Oleg Pyzhcov 发布的关于使用 Monox 更好地记录日志的方向做一些事情 。

0 投票
1 回答
182 浏览

scala - 如何从副作用代码中获取当前正在执行的 ZIO 光纤的 ID

我知道我可以通过调用来获取当前正在执行的光纤的 ID

但是,我想要的是一个不纯的函数,我可以从副作用代码中调用它,让我们像这样定义它

以便

产生真实的。是否可以定义这样的函数,如果可以,如何定义?请注意,此问题与如何从 ZIO 中的副作用代码访问光纤本地数据密切相关。

0 投票
1 回答
957 浏览

scala - Scala ZIO Ref 数据类型

我在 Scala 中有一个类,其中有四个参数,其中 2 个是变量,我想使用 Zio 中的 Ref 数据类型来控制对这些变量的访问,这是我的代码:

为了访问参考我写了这个:

输出:

我想知道为什么 ref 的值不能更新为 1 而不是 0 ?

0 投票
1 回答
519 浏览

scala - Scala ZIO.bracket:处理释放资源的错误

我想创建一个目录,然后对目录做一些事情,最后删除它。我为此使用了括号成语。

删除目录显然是一个容易出错的操作。但release功能必须始终成功。所以我必须使用ZIO.succeed看起来错误的。

如何正确关闭资源?