跳到主要内容

迭代器(Iterator)

预计学习时间:7分钟

迭代器是一种特别的模块,能将数组转换成一系列分包。数组中的每一项都会转换成一个独立的分包输出。

设置迭代器

文档图片

迭代器的设置与设置任何其他模块的方式相同。数组字段中应填入待转换/分割的数组。

示例:

将电子邮件附件保存至谷歌云端硬盘

以下场景说明了如何检索包含附件的电子邮件,并将这些附件作为单独文件保存在指定的谷歌云端硬盘文件夹中。

电子邮件可能包含多个附件。在第一个模块之后加入的迭代器模块允许您单独处理每个附件。迭代器将附件数组分解为单个分包,然后依次将每个分包中的附件保存到指定的谷歌云端硬盘文件夹中。如上图所示,迭代器模块的设置中数组字段应包含附件数组。

文档图片

专项迭代器

为方便用户,许多Make应用提供了具有简化配置的专项迭代器模块。例如,电子邮件应用包含了一个特殊的电子邮件 > 迭代附件迭代器,它可以实现与通用迭代器相同的功能,无须指定数组,只需选择源模块即可。

文档图片

何时在您的场景中使用迭代器

下面的视频为迭代器与数组聚合器三部分课程的第一模块,阐释了迭代器和数组聚合器的作用,并通过示例场景说明了何时使用迭代器及其输出处理方式。

故障排除:迭代器模块下的映射面板无法显示可映射项目

如果迭代器无法识别数组项目的结构,那么在迭代器之后的模块中的映射面板将只显示两个项目:分包总数与分包顺序:

文档图片

这是因为在Make中,每个模块都需提供其输出项目的信息,以便这些项目能在后续模块的映射面板中被正确显示。然而,例如JSON** > 解析 JSONWebhooks > 自定义 Webhook**的某些模块可能在某些情况下无法提供这种信息。

解决方法是手动执行场景,使模块了解其输出的项目,以便向后续模块提供信息。例如,如果您使用的是没有数据结构的JSON > 解析 JSON模块,如下图所示:

文档图片

连接迭代器模块后,您将无法在迭代器设置面板中映射模块输出到_数组_字段:

文档图片

为此,请在场景编辑器中手动启动场景。您可以断开JSON > 解析 JSON之后的模块连接,以阻止流程向前推进,或者右键单击JSON > 解析 JSON并从上下文菜单选择“只运行此模块”来执行该模块。

一旦执行了JSON > 解析 JSON,该模块便学会了其输出的项目并向所有后续模块(包括迭代器)提供信息。如此,迭代器的设置面板便能显示这些项目: 流程控制_10.png

此外,连接在迭代器模块后面的模块的映射面板也将显示数组项目中包含的项目: 文档图片

总结:如果您在模块的映射面板中看不到一些项目,只需运行一次场景,这样所有模块便能学会它们输出的项目,并向后续模块提供必要的信息。