大家在使用 n8n 的循环节点(Loop Over Items)时,有没有遇到过这种让人抓狂的情况:
明明官方文档说 loop 分支是循环执行,而 done 分支是在循环结束后只执行一次。结果你自己一上手:好家伙,loop 跑了 3 次,done 后面接的节点居然也跟着跑了 3 次!🤯 如下图所示:

难道是官方文档在忽悠人?还是咱用的版本不对?
今天,磊哥就带大家扒一扒 n8n 基础节点里最难理解的------循环节点。全网没人能讲清的背后的逻辑,咱一次性说明白!
🎥 视频教程演示
www.bilibili.com/video/BV1od...
🔍 1. 现场还原:消失的"一次执行"
咱们先看一个简单的案例。
在工作流里,我用代码节点(Code Node)输出了三项内容:张三、李四、王五。

按逻辑,接下来的循环节点应该是这样的:

- loop 分支:负责循环这三项,去执行具体的任务(比如写入文件)。
- done 分支 :等这三项都处理完了,出来吱一声(执行一次),收个尾。
但在实际执行中,你会发现 loop 下面显示 "3 items",而 **done** 下面也显示了 "3 items"。
如果你在 done 后面接个发邮件或者写文件的节点,它会整整运行 3 次!

这到底是为什么?🤔
💡 2. 核心真相:是"结果"跑了多次,而不是"事件"跑了多次
这里大家一定要记住一句话:在 n8n 里,后续节点执行几次,取决于前一个节点输出了多少个 Item(项目)。
这就是很多人理解不了循环节点的根本原因。
- 官方没骗你 :
done分支确实只被触发了一次。 - 真相是 :
done事件在执行时,它会把之前loop循环完成的所有结果(那 3 条数据)封装在一起吐出来。
因为 done 分支输出了 3 个项目 ,n8n 的默认逻辑就是:"既然你有 3 条数据,那后面的节点我就并行的帮你跑 3 次吧!"
所以,你看到的"执行多次",其实是 n8n 强大的并发特性导致的"假象"。
🛠️ 3. 终极绝招:如何让 Done 只乖乖执行一次?
既然知道了原因,解决起来就非常简单了。
如果你希望循环结束后,后续节点不管前面有多少项数据,都只运行一次,你只需要:

- 打开
done分支后的那个节点设置。 - 点击 Settings 选项卡。
- 找到 Execute Once 选项,把它打开!✅
开启这个开关后,无论前面传过来 3 条还是 3000 条数据,这个节点都只会执行一次。这才是符合我们预期的"循环结束"动作,最终执行效果如下:

最后总结 📝
理解了 "Item 驱动执行" 这个逻辑,你才算真正踏入了 n8n 高级玩家的大门。
- loop:过程分支,循环几次跑几次。
- done:结束分支,只触发一次,但会携带所有结果。
- Execute Once:拦截多余执行的"定海神针"。
如果你觉得这篇干货有帮到你,记得点赞、在看!
我是磊哥,每天分享一个 n8n 实战干货,咱们下期见!👋
本文已收录到我的技术小站 www.javacn.site,网站包含的内容有:LangChain/N8N/SpringAI/SpringAIAlibaba/LangChain4j/Dify/Coze/AI实战项目/AI常见面试题等技术分享,欢迎各位大佬光临指导~