逐项循环节点#
逐项循环节点可在需要时帮助您遍历数据。
该节点会保存原始输入数据,并在每次迭代时通过 loop 输出端口返回预设数量的数据。
当节点执行完成后,会将所有已处理数据合并并通过 done 输出端口返回。
逐 项循环节点的适用场景#
默认情况下,n8n节点设计用于处理输入项目列表(除以下列出的少数例外)。根据您的具体需求,工作流中通常不需要使用逐项循环节点。您可通过循环执行章节深入了解n8n处理多项目的方式。
以下链接列举了逐项循环节点的典型应用场景:
- 循环直至所有项目处理完成:说明逐项循环节点与常规项目处理的差异及适用场景
- 节点例外情况:列举需要手动构建循环逻辑的特殊场景和节点
- 规避速率限制:演示如何通过批处理API请求避免触发第三方服务的速率限制
节点参数#
批处理大小#
设置单次调用返回的项目数量。
节点选项#
重置#
启用后,节点将在每次循环时重新初始化当前输入数据。当需要将输入数据视为全新数据集而非前序项目的延续时,应启用此选项。
例如:配合条件节点使用带重置选项的逐项循环节点,可在未知总页数时查询分页服务。循环逐页查询并执行处理,同时递增页码。重置功能确保循环将每次迭代识别为独立数据集,条件节点则评估退出条件以决定是否继续迭代。
重要提示:必须设置有效的终止条件
对于上述示例类工作流,必须为循环设置有效的终止条件。若终止条件始终不满足,工作流将陷入无限循环。
启用该选项后,可通过将参数表示方式从固定值切换至表达式来调整重置条件。表达式执行结果将决定节点重置项目处理的时机。
模板与示例#
不依赖第三方API从Google地图抓取企业邮箱 作者:Akram Kadri 查看模板详情
通过Google地图生成潜在客户 作者:Alex Kim 查看模板详情
🚀使用Gemini将播客转换为爆款TikTok短片+多平台发布✅ 作者:Matt F. 查看模板详情
从两个不同源读取RSS订阅#
此工作流演示如何使用逐项循环节点从两个不同源读取RSS订阅。由于RSS订阅读取节点默认仅处理接收到的首项数据,因此需要在该工作流中使用逐项循环节点。您也可以在n8n.io查看该工作流。
本示例将逐步构建工作流,但默认您已熟悉n8n基础操作。如需了解创建首个工作流(包括添加节点的方法),请参阅快速入门指南。
最终工作流图示如下:
复制上方工作流文件并粘贴至您的实例,或按以下步骤手动构建:
- 添加手动触发器
- 添加代码节点
- 将以下代码复制到代码节点:
return [ { json: { url: 'https://medium.com/feed/n8n-io', } }, { json: { url: 'https://dev.to/feed/n8n', } } ];
- 添加“遍历项”节点。
- 配置遍历项:在批处理大小字段中将批次大小设为
1。 - 添加 RSS 源读取节点。
- 选择执行工作流。运行工作流以将数据加载到 RSS 源读取节点。
- 配置 RSS 源读取:将输入中的
url映射到 URL 字段。可通过从 INPUT 面板拖放或使用表达式{{ $json.url }}实现。 - 选择执行工作流以运行工作流并查看结果数据。
检查节点是否已处理所有项#
要检查节点是否仍有待处理项,请使用以下表达式:{{$node["Loop Over Items"].context["noItemsLeft"]}}。该表达式返回布尔值。若节点仍有待处理数据,表达式返回 false,否则返回 true。
获取节点的当前运行索引#
要获取节点的当前运行索引,请使用以下表达式:{{$node["Loop Over Items"].context["currentRunIndex"];}}。