CommonJS中的循环依赖

本文探讨了CommonJS规范中的循环依赖问题。当出现循环依赖,如模块cyclemain.js依赖cycleA.js,cycleA.js又依赖cycleB.js,而cycleB.js依赖cyclemain.js或cycleA.js时,CommonJS会返回一个不完整的对象,允许模块继续解析,避免无限循环,确保所有模块最终都能正确解析和执行。
摘要由CSDN通过智能技术生成

CommonJS规范中是这样描述循环依赖的--http://www.commonjs.org/specs/modules/1.0/

 

If there is a dependency cycle, the foreign module may not have finished executing at the time it is required by one of its transitive dependencies; in this case, the object returned by "require" must contain at least the exports that the foreign module has prepared before the call to require that led to the current module's execution.

下面我们来理解一下:

cyclemain.js

console.log("main导入a模块");
const a = require('./cycleA');
console.log("main输出a模块----");
console.log(a)

cycleA.js

console.log('a模块--导入b之前')
const b = require('./cycleB'); 
console.log("a输出B模块----");
console.log(b)
console.log('a模块--导入b之后')

module.exports = '我是A模块'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值