【问题标题】:Doobie transact over a list of ConnectionIO programsDoobie 通过 ConnectionIO 程序列表进行交易
【发布时间】:2018-07-29 13:45:01
【问题描述】:

假设我有一个 Doobie 程序列表(全部带有 Unit 类型参数,fwiw):

val progList: List[ConnectionIO[Unit]] = prog1 :: prog2 :: ... :: Nil

有什么方法可以在一个事务中运行它们吗?在这里理解是行不通的,因为我只知道运行时程序列表的精确组成。从本质上讲,我想我需要将它们折叠在一起。

我想这个问题一般适用于 Cats 中的 Free Monads,所以我也会标记 Cats。谢谢。

【问题讨论】:

  • @YuvalItzchakov 那张票不是关于反向操作的吗?
  • 你是对的,倒着读吧:)

标签: scala scala-cats doobie


【解决方案1】:

您可以使用来自猫的.sequence 做到这一点:

import doobie.implicits._
import cats.implicits._

...

val res = progList.sequence // ConnectionIO[List[Unit]]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-14
    • 1970-01-01
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    • 2020-08-16
    • 1970-01-01
    • 2010-09-17
    相关资源
    最近更新 更多