我有一个我们要称为Connection的类,该类中有一个名为Disconnect的函数,该函数返回一个名为PartialConnection的类。这两个类都有一些参数,但不应生效,因为对于这样的示例而言,它相当复杂。

这是我正在处理的类结构:

const BaseConnection    = require("./BaseConnection.js");
const PartialConnection = require("./PartialConnection.js");

class Connection extends BaseConnection { // BaseConnection is also a class with standard variables every type of connection should have. PartialConnection also extends from this.
  constructor () {
    ...
  }

  Disconnect() {
    return new PartialConnection();
  }
}


在您全部询问之前,./PartialConnection.js的路径是正确的,并且已使用module.exports = PartialConnection;进行设置,其中PartialConnection是类名。

文件PartialConnection.js

const Connection = require("./Connection");
const BaseCon    = require("./BaseConnection");

class PartialConnection extends BaseCon {
  constructor () {
    ...
  }
}

module.exports = PartialConnection;


虽然,我必须说module.exports = PartialConnection的颜色已如下图所示:https://imgur.com/a/pB9yLW5-我也应该说,当执行相同的功能时(对于PartialConnection到Connection),它的工作正常。它与循环引用有关。

当我创建Connection的新实例并运行Disconnect函数时,它将返回以下错误:

/Users/---/Desktop/Projects/QDB/lib/Connections/Connection.js:87
        return new PartialConnection();
               ^

TypeError: PartialConnection is not a constructor
    at Connection.Disconnect (/Users/---/Desktop/Projects/QDB/lib/Connections/Connection.js:87:16)
    at process.<anonymous> (/Users/---/Desktop/Projects/QDB/lib/Connections/Connection.js:76:75)
    at process.emit (events.js:219:5)


(为了保密起见,我取消了我的名字。)

如您所见,似乎我无法初始化并返回某种新类。这曾经在几周前起作用,但现在却没有。

版;

$ node -v
v13.3.0
$ npm -v
6.14.2


为了澄清-我希望它几乎完全终止当前类并返回不允许您对Connection类进行调整的新类。

如果您有任何解决方案或可以通过任何方式提供帮助,我们将不胜感激!

最佳答案

好吧,所以我进行了更多的实验,发现,如果您需要函数中的类而不是文件的开头,则它会立即缓存,您可以调用它,而不必让它返回空对象。

const BaseConnection = require("./BaseConnection");

class Connection extends BaseConnection {
  constructor () {
    ...
  }

  Disconnect() {
    const PartialConnection = require("./PartialConnection");
    return new PartialConnection();
  }
}


如果您还有其他答案,请稍后分享!

10-06 11:08