Slick 的 DBIO.seq 方法 运行 是否按顺序操作?
Does Slick's DBIO.seq method run actions sequentially?
Slick 有 DBIO.seq
和 DBIO.sequence
用于 运行 宁许多 DBIOAction
,因此后续操作不需要先前操作的结果。
我查看了源代码,如果 DBIO.seq
运行 按顺序执行这些操作对我来说并不明显。另一方面,DBIO.fold
有一个非常简单的实现,它肯定会按顺序执行 运行 操作,因为它只是在内部使用 flatMap
。
我的问题是:使用 seq
和 sequence
时是否会像 fold
一样保证顺序?
documentation 表示 DBIO.seq
中的操作顺序为 运行:
The simplest combinator is DBIO.seq which takes a varargs list of
actions to run in sequence
此外,在 DBIO.seq
的 source code 中,您会看到 SynchronousDatabaseAction
在 foreach
内部被调用,这意味着每个顺序和(内部)同步没有任何并行调用 运行.
Slick 有 DBIO.seq
和 DBIO.sequence
用于 运行 宁许多 DBIOAction
,因此后续操作不需要先前操作的结果。
我查看了源代码,如果 DBIO.seq
运行 按顺序执行这些操作对我来说并不明显。另一方面,DBIO.fold
有一个非常简单的实现,它肯定会按顺序执行 运行 操作,因为它只是在内部使用 flatMap
。
我的问题是:使用 seq
和 sequence
时是否会像 fold
一样保证顺序?
documentation 表示 DBIO.seq
中的操作顺序为 运行:
The simplest combinator is DBIO.seq which takes a varargs list of actions to run in sequence
此外,在 DBIO.seq
的 source code 中,您会看到 SynchronousDatabaseAction
在 foreach
内部被调用,这意味着每个顺序和(内部)同步没有任何并行调用 运行.