解决循环依赖/ JS

时间:2018-10-20 07:16:59

标签: javascript node.js refactoring circular-dependency

我在某些JS文件和要解决的步骤之间存在循环依赖关系。

问题1:将require移到一个好的解决方案中吗?

使代码正常工作的一种方法是简单地在函数内移动require()语句,例如:

  static getTokens(qo) {
    const FaqModel = require('../FaqModel')
    // do stuff with FaqModel is OK now

这是否意味着require会在getTokens()方法的每次调用中运行?对我来说似乎很讨厌。 还是这种解决方法足够好?

第二季度发现方法

这不是A req B和B req A的简单情况。在某处的多个文件之间存在循环。上一次我查看发现依赖关系的工具并没有给出明确的答案,所以想知道人们如何最好地追踪这种情况?

第三季度重构策略

我打算从FaqModel中重构所有需要的内容到第三个文件,并且只要求从引起循环下降的每种情况开始,例如,这样只需要一个方向。如果可能具有文件层次结构,则只需要 down 而不是 up 。但这似乎很简单。 从高层次上讲,还有哪些其他方法可以避免设计中的圆弧形凹坑?

谢谢!

1 个答案:

答案 0 :(得分:0)

需要更多详细信息才能为您提供有关如何解决特定依赖项问题的答案。但是,这是有助于确定问题的好策略:

注释掉所有内容,然后慢慢添加功能。从需要最少依赖项的功能开始,然后逐步解决具有更多依赖项的功能。最终,事情会破裂。如果您逐步执行此操作,则应该可以帮助您找到此问题涉及的一个或多个依赖项。