项目循环#
项目循环节点帮助您在需要时循环遍历数据。
该节点保存原始传入数据,并在每次迭代中,通过 loop 输出返回预定义数量的数据。
当节点执行完成时,它将所有处理过的数据组合起来,并通过 done 输出返回。
何时使用项目循环节点#
默认情况下,n8n 节点被设计为处理输入项目列表(有一些例外,详细信息如下所述)。根据您试图实现的目标,您通常不需要在工作流中使用项目循环节点。您可以在 n8n 中的循环 页面上了解更多关于 n8n 如何处理多个项目的信息。
这些链接突出了项目循环节点可能有用的一些情况:
- 循环直到所有项目都被处理:描述了项目循环节点与正常项目处理的区别,以及您何时可能希望合并此节点。
- 节点异常:概述了具体情况和节点,其中您可能需要使用项目循环节点来手动构建循环逻辑。
- 避免速率限制:演示如何批处理 API 请求以避免来自其他服务的速率限制。
节点参数#
批处理大小#
输入每次调用返回的项目数量。
节点选项#
重置#
如果开启,节点将在每次循环时使用当前输入数据重新初始化进行重置。当您希望项目循环节点将传入数据视为新的数据集而不是之前项目的继续时,请使用此选项。
例如,当您不知道需要多少页面时,您可以使用带有重置选项的项目循环节点和 If 节点 来查询分页服务。循环一次查询一个页面,执行任何处理,并递增页码。循环重置确保循环将每次迭代识别为新的数据集。If 节点评估退出条件以决定是否执行另一次迭代。
包含有效的终止条件
对于上述示例中描述的工作流,包含循环的有效终止条件至关重要。如果您的终止条件永远不匹配,您的工作流执行将陷入无限循环。
启用时,您可以通过将参数表示从 Fixed 切换到 Expression 来调整重置条件。您的表达式评估结果决定节点何时重置项目处理。
模板和示例#
从两个不同来源读取 RSS 源#
此工作流允许您使用项目循环节点从两个不同来源读取 RSS 源。您需要在工作流中使用项目循环节点,因为 RSS 源读取节点只处理它接收到的第一个项目。您也可以在 n8n.io 上找到此工作流。
该示例演示了如何构建工作流,但假设您已经熟悉 n8n。要构建您的第一个工作流,包括学习如何向工作流中添加节点,请参阅试用。
最终工作流如下所示:
复制上面的工作流文件并粘贴到您的实例中,或按照以下步骤手动构建:
- 添加手动触发器。
- 添加代码节点。
- 将此代码复制到代码节点中:
1 2 3 4 5 6 7 8 9 10 11 12
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"];}}
。
🚀 与作者交流

📚 教程 💡 案例 🔧 技巧

⚡ 快答 🎯 定制 🚀 支持