如何在ThrustJS中处理循环引用?

时间:2019-06-06 20:23:58

标签: javascript

我们有一个类A引用了类B,而类B引用了类A在调用require子句的同时在实例时间创建了一个循环,如何使用ThrustJS处理呢? (我们没有像NodeJS中的框架那样处理它。)

2 个答案:

答案 0 :(得分:1)

如果您没有其他方法可以通过完全删除A到B或B到A的引用来摆脱循环引用。

然后一种解决方案是创建一个中间/代理模块或类,根据您的要求,该类或类是A和B类的组成或聚集。

给出:

class A {
  b = new B();
}

class B {
  a = new A();
}

然后,删除循环引用:

class A {
  // some stuff
}

class B {
  // some other stuff
}

class AB {
  a = new A();
  b = new B();
}

const ab = new AB();
ab.a;
ab.b;

答案 1 :(得分:0)

我的解决方案是要求在方法内部使用B,以防止在实例化类时使用ciclic引用。

class A {
    testA(){
        const b = require('b')
        b.testB()
    }
}
class B {
    testB(){
        const a = require('a')
        a.testA()
    }
}