循环可以在工作流中实现,以根据定义的条件重复一组任务。
循环按顺序执行。最多可以并行运行 4 个步骤。
循环配置可以在块配置的 选项卡中访问,或通过右键点击一个块并选择 。
循环设置需要一个操作对象的列表:
-
普通的单一值,这些值可以在任务参数中使用,例如
{{ @item }}。 -
一个 .JSON 对象,其中对象中的每个元素可以通过其 键 进行访问,例如
{{ @item.key }}。
访问循环的聚合结果
所有迭代的 输出 可以在循环完成后作为 .JSON 数组访问。每次迭代的 输出 必须是有效的 .JSON 文件。
可以定义四种循环 类型,并在 字段中 选择:
-
按序列
-
按条目
-
按复杂条目
-
按参数
按序列循环允许对一系列数字进行迭代或在工作流中生成一系列值。
它可以用于重复一组步骤特定次数或根据一系列值执行操作。
要创建一个示例 按序列 循环,请按照以下步骤操作:
-
选择一个空块并打开配置。
-
点击 编辑循环。
配置选项已呈现。
-
从 字段中,选择 按序列。
-
在 字段中输入循环迭代次数。
-
可选地,输入循环应开始和/或结束的值。
-
点击 保存循环。
-
在 配置中,点击 编辑参数。
配置选项已呈现。
-
在 字段中,输入
{{ @item }}并点击 保存参数。该值将在运行时转换。
例如,如果计数设置为 3,起始值为 2,则此循环的结果将是:
-
循环列表 => ["2", "3", "4"] -
{{ @item }} => 2或3或4,基于迭代
按条目 循环允许对条目列表进行迭代。
当需要根据条目列表执行操作时,可以使用它。
要创建一个示例 按条目 循环,请按照以下步骤操作:
-
选择一个空块并打开 配置。
-
点击 编辑循环。
配置选项已呈现。
-
从 字段中,选择 按条目
-
在 字段中输入
en,并点击 +条目(创建另一个 字段)。 -
在第二个 字段中输入
de并创建第三个字段。 -
在第三个 字段中输入
fr并创建第四个字段。 -
在第四个 字段中输入
us。 -
点击 保存循环。
-
在 配置中,点击 编辑参数。
配置选项已呈现。
-
在 字段中,输入
{{ @item }}并点击 保存参数。该值将在运行时转换。
此循环的结果将是对语言代码列表的迭代:
-
循环列表 => ["en", "de", "fr", "ua"] -
{{ @item }} => en或de .. ua
按复杂条目 循环允许对对象列表进行迭代。
当需要基于复杂条目列表执行操作时,可以使用它。
要创建一个示例 按复杂条目 循环,请按照以下步骤操作:
-
选择一个空块并打开配置。
-
点击 编辑循环。
配置选项已呈现。
-
从 字段中,选择 按复杂条目
-
点击 +键:value 以添加第二个键。
-
对于,输入以下内容:
-
-
:名称
-
:项目 1
-
-
-
:ID
-
:11
-
-
-
点击 +Object 以添加第二个对象,并点击 +键:value 以添加第二个键。
-
对于,输入以下内容:
-
-
:名称
-
:项目 2
-
-
-
:ID
-
:22
-
设置示例:
-
-
在 配置中,点击 编辑参数。
配置选项已呈现。
-
在 字段中,输入
{{ @item.name }}并点击 保存参数。该值将在运行时转换。
此循环的结果将是对项目列表的迭代:
-
循环列表=>[ { "name":"项目 1", "ID":11 }, { "name":"项目 2", "ID":22 } ] -
{{ @item }}=>{ "name":"项目 1", "ID":11 } -
{{ @item.name }}=>项目 1 -
{{ @item.id }}=>11
按参数 循环允许对任何先前任务或触发器输出的动态列表进行迭代。
此循环仅用作参数字段中的参考。
例如:
任务的输出 (Strings:发布版本 ):
{
"created_at":"2015-01-28T09:52:53Z",
"environments": ["development", "production"],
"id": "abcd1234cdef1234abcd1234cdef1234",
"locales": [
{
"code": "en-GB",
"id": "abcd1234cdef1234abcd1234cdef1234",
"name":"English"
},
{
"id": "abcd5678cdef5678abcd5678cdef5678",
"name":"German",
"code": "de_DE"
}
],
"platforms": ["android"],
"project": {
"created_at":"2015-01-28T09:52:53Z",
"id": "abcd1234cdef1234abcd1234cdef1234",
"main_format": "xml",
"name":"My Android 项目"
"updated_at":"2015-01-28T09:52:53Z"
},
"updated_at":"2015-01-28T09:52:53Z",
"version":1
}
如果循环设置 设置为 {{ $.locales }},则:
-
loop list=>[ { "code": "en-GB", "id": "abcd1234cdef1234abcd1234cdef1234", "name":"English" }, { "id": "abcd5678cdef5678abcd5678cdef5678", "name":"German", "code": "de_DE" } ] -
第一次
{{ @item }}=>{ "code": "en-GB", "id": "abcd1234cdef1234abcd1234cdef1234", "name":"English" } -
{{ @item.code }}=>en-GB -
{{ @item.name }}=>English
或者,如果 {{ $.environments }} 被参考,则:
-
loop list=>["development", "production"] -
{{ @item }}=>development或production