NodeJS中如何解释循环引用在循环中的具体实现?
- 内容介绍
- 文章标签
- 相关推荐
本文共计747个文字,预计阅读时间需要3分钟。
最近用node排查问题时,发现半天都解决不了,最后发现是循环引用导致的问题。以下是详细记录:
场景复现:- 比较简单的场景,涉及四个文件:parent.ts、child.ts、child_2.ts、util.ts- 文件内容如下:
typescript// parent.tsimport { util } from './util';
function parentFunc() { util();}
export { parentFunc };
// child.tsimport { parentFunc } from './parent';
function childFunc() { parentFunc();}
export { childFunc };
// child_2.tsimport { childFunc } from './child';
function child_2Func() { childFunc();}
export { child_2Func };
// util.tsexport function util() { console.log('util function called');}
发现问题:- 当尝试运行child_2Func时,程序会抛出错误:Error: Cannot find module './child'
原因分析:- 由于循环引用,导致child.ts无法正确导入parent.ts,进而导致child_2.ts无法导入child.ts,最终导致util.ts无法被导入。
最近在用node的时候排查一个问题排查了半天,最终发现是循环引用导致的问题,故在此记录一下。
本文共计747个文字,预计阅读时间需要3分钟。
最近用node排查问题时,发现半天都解决不了,最后发现是循环引用导致的问题。以下是详细记录:
场景复现:- 比较简单的场景,涉及四个文件:parent.ts、child.ts、child_2.ts、util.ts- 文件内容如下:
typescript// parent.tsimport { util } from './util';
function parentFunc() { util();}
export { parentFunc };
// child.tsimport { parentFunc } from './parent';
function childFunc() { parentFunc();}
export { childFunc };
// child_2.tsimport { childFunc } from './child';
function child_2Func() { childFunc();}
export { child_2Func };
// util.tsexport function util() { console.log('util function called');}
发现问题:- 当尝试运行child_2Func时,程序会抛出错误:Error: Cannot find module './child'
原因分析:- 由于循环引用,导致child.ts无法正确导入parent.ts,进而导致child_2.ts无法导入child.ts,最终导致util.ts无法被导入。
最近在用node的时候排查一个问题排查了半天,最终发现是循环引用导致的问题,故在此记录一下。

