【发布时间】:2021-07-21 20:37:19
【问题描述】:
这可能是个愚蠢的问题,但从 ZIO 开始,我无法将 Seq[ZIO] 转换为 ZIO[Seq]:
def translate(keys: Seq[String], locales: Seq[Locale]):RIO[Translator, Seq[Translation]] = {
for {
service <- ZIO.environment[Translator]
} yield {
// service.translate produce a zio.Task[Translation]
keys.map(k => service.translate(k, locales)
}
}
必需:RIO[Translator, Seq[Translation]]
找到:ZIO[Translator, Nothing, Seq[zio.Task[Translation]]
我尝试了flatMap、flatten、collectAll 和merge,但我无法与任何人获得预期的结果。
如何将Seq[ZIO[_, _, B]] 转换为ZIO[_, _, Seq[B]]?
谢谢
编辑:似乎ZIO.foreach 是最好的选择,但是由于理解,我仍然将它包裹在另一个 ZIO 中。
【问题讨论】: