关于node中两个模块相互引用却不会死循环的问题

时间:2023-03-08 15:37:31

关于node中两个模块相互引用却不会死循环的问题

node中是通过require来导入加载模块的,require有两个作用:

1.加载文件模块并执行里面的代码

2.拿到被加载文件模块导出的接口对象

现在又两个文件一个文件a 一个文件b 

这是a文件的代码

关于node中两个模块相互引用却不会死循环的问题

这是b文件的代码
关于node中两个模块相互引用却不会死循环的问题

我们运行a文件发现,并未出现死循环的状态出现

关于node中两个模块相互引用却不会死循环的问题

原因就是
nodejs在运行b文件调用a文件这行代码时
为了防止死循环会返回a.js未完成的副本,
这个未完成的副本就是a.js执行到require('./b.js')这一行的时候a.js的状态
所以就不会造成死循环。