node require的循环引用是怎么一回事

require 运行过程

require 引用是同步的,没有异步这么一说,它会先运行一遍。

setouttime(function(){
export=a;

})

如果我们require的时候,那么这个时候是请求到{}的,也就是没有暴露任何的元素。

require 循环引用

require 循环引用,很有可能是个坑。

比如a引用了b,那么b引用了a,那么b请求到的a肯定是空的,因为require是同步的,那么b模块还没加载完,所以得到的就是{}了,

主要是require的机制问题,请求b的时候,其实已经将模块加入到了module.export中,那么a将去查找b,这个时候其实是找得到b的,

那么很美妙的事情就发生了。

posted @ 2020-05-07 12:28  敖毛毛  阅读(330)  评论(0编辑  收藏  举报