Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript中的异步构造函数_Typescript_Asynchronous - Fatal编程技术网

Typescript中的异步构造函数

Typescript中的异步构造函数,typescript,asynchronous,Typescript,Asynchronous,在我的一个typescript文件中,我有两个类,每个类都有一个构造函数。然后在每个类中,它需要获取彼此的类的实例。我的代码如下: namespace pxsim { export class Board extends pxsim.BaseBoard { public tMap: trafficMap = new trafficMap(); public x: number; public y: number; const

在我的一个typescript文件中,我有两个类,每个类都有一个构造函数。然后在每个类中,它需要获取彼此的类的实例。我的代码如下:

namespace pxsim {
    export class Board extends pxsim.BaseBoard {
        public tMap: trafficMap = new trafficMap();
        public x: number;
        public y: number;
        constructor(){
            this.y = 10;
            this.x = this.tMap.x;
        }
    }
    export class trafficMap{
        public b: Board = new Board();
        public y: number;
        public x: number;
        constructor(){
            this.x = 20;
            this.y = this.b.y;
        }
    }
}
当我在浏览器中运行它时,控制台显示一个错误,说“trafficMap不是构造函数”。我认为这是因为在
Board
类中,当它试图创建
trafficMap
的实例时,由于代码还没有到达
trafficMap
类,它还没有加载它的内容。因此,我认为我需要类似异步构造函数的东西。如果有什么问题,请纠正我

因此,我认为我需要类似异步构造函数的东西。如果有什么问题,请纠正我

没有异步构造函数

修理 当你有两个相互依赖的类时,你真正拥有的是三个类。两个独立的(您已经拥有)和一个编排器(您拥有的两者之间的真正耦合)

  • 最快的修复方法:只需创建一个结合了这三个特性的类
  • 更好:根据需要将功能分为三类
因此,我认为我需要类似异步构造函数的东西。如果有什么问题,请纠正我

没有异步构造函数

修理 当你有两个相互依赖的类时,你真正拥有的是三个类。两个独立的(您已经拥有)和一个编排器(您拥有的两者之间的真正耦合)

  • 最快的修复方法:只需创建一个结合了这三个特性的类
  • 更好:根据需要将功能分为三类

如果您不想采用正确的答案,可以使用代理进行依赖项注入。如果您不想采用正确的答案,可以使用代理进行依赖项注入。我是否根据功能划分功能?在我的例子中,如果类
trafficMap
中的所有功能都取决于
Board
中的设置,并且
Board
需要获取
trafficMap
的一个实例来运行
trafficMap
中的功能来执行某些操作,该怎么办?我是否根据功能来分离功能?在我的例子中,如果类
trafficMap
中的所有功能都取决于
Board
中的设置,并且
Board
需要获取
trafficMap
的一个实例来运行
trafficMap
中的功能以执行某些操作,该怎么办?