Javascript 为什么我的代码在Typescript中实例化类时会卡住?

Javascript 为什么我的代码在Typescript中实例化类时会卡住?,javascript,typescript,object,Javascript,Typescript,Object,我正在解析一些数据的字符串,然后根据这些数据创建对象。我能够很好地解析数据,但由于某种原因,当我尝试创建一个新对象时,我的代码会暂停?我怀疑我做得不对,以下是我的代码: 这是我的阅读课: class ReadingDate { year: number; month: number; day: number; hour: number; minute: number; second: number; public constructor(y: number, m: number,

我正在解析一些数据的字符串,然后根据这些数据创建对象。我能够很好地解析数据,但由于某种原因,当我尝试创建一个新对象时,我的代码会暂停?我怀疑我做得不对,以下是我的代码:

这是我的阅读课:

class ReadingDate {
year: number;
month: number;
day: number;
hour: number;
minute: number;
second: number;

public constructor(y: number, m: number,
                 d: number, h: number,
                 min: number, s: number) {
  this.year = y;
  this.month = m;
  this.day = d;
  this.hour = h;
  this.minute = min;
  this.second = s;
}

public toString() : string{
    return (this.year+"-"+this.month+"-"+this.day+" "+this.hour+":"+this.minute+":"+this.second);
  }
 }
下面是我试图在另一个类中创建新ReadingDate的代码片段:

static parseDate(date: string){
  console.log("parsing date"); // this prints fine
  let array = date.split(" ", 2);
  let dateArray = array[0].split("-", 3);
  let timeArray = array[1].split(":", 3);
  console.log("numbers \n1: " + parseInt(dateArray[0]) +" type: " + typeof(parseInt(dateArray[0]))
    +"\n2: " + parseInt(dateArray[1]) + " type: " + typeof(parseInt(dateArray[1]))
    +"\n3: " + parseInt(dateArray[2]) + " type: " + typeof(parseInt(dateArray[2]))
    +"\n4: " + parseInt(timeArray[0]) + " type: " + typeof(parseInt(timeArray[0]))
    +"\n5: " + parseInt(timeArray[1]) + " type: " + typeof(parseInt(timeArray[1]))
    +"\n6: " + parseInt(timeArray[2]) + " type: " + typeof(parseInt(dateArray[2]))
 );
  console.log("parsed date"); // this prints fine
  var parsedDate = new ReadingDate(
    parseInt(dateArray[0]),
    parseInt(dateArray[1]),
    parseInt(dateArray[2]),
    parseInt(timeArray[0]),
    parseInt(timeArray[1]),
    parseInt(timeArray[2])
  );
  console.log("reached here"); //this never prints
  console.log("newlyParsedDate: "+ parsedDate.toString()); //this never prints
  return parsedDate; //this never happens
}
下面是我调用parseDate()的一个示例:

}

示例日期为“2018-10-16 10:32:02”,控制台输出如下所示:

parser.ts:17 inparser: 2018-10-16 10:41:22,living,1,16
parser.ts:31 parsing date
parser.ts:33 2018-10-16
parser.ts:34 10:32:02
parser.ts:37 parsed date
parser.ts:38 numbers 
             1: 2018 type: number
             2: 10 type: number
             3: 16 type: number
             4: 10 type: number
             5: 32 type: number
             6: 2 type: number
它不会给我任何错误,但在我尝试创建ReadingDate对象后,我的程序似乎停止了任何操作

提前感谢您的帮助

编辑:使用toString方法更新

编辑2:更新了正在调用的parseDate示例、一些额外的console.log以及调用时的控制台输出

编辑3:好的,当我在试图使对象如下的位置放置try/catch时:

try{var parsedDate = new ReadingDate(
      parseInt(dateArray[0]),
      parseInt(dateArray[1]),
      parseInt(dateArray[2]),
      parseInt(timeArray[0]),
      parseInt(timeArray[1]),
      parseInt(timeArray[2])
      );}
catch(error){console.log(error);}
我得到这个错误:

ReferenceError: ReadingDate is not defined
at Function.webpackJsonp.197.ParserProvider.parseDate (VM14753 main.js:300)
at Function.webpackJsonp.197.ParserProvider.parseReading (VM14753 main.js:276)
at HomePage.webpackJsonp.195.HomePage.handleReading (VM14753 main.js:146)
at VM14753 main.js:141
at VM14752 vendor.js:75337
at Array.forEach (<anonymous>)
at Events.publish (VM14752 vendor.js:75336)
at ClientImpl.MqttProvider.onMessageArrived (VM14753 main.js:228)
at ClientImpl.LibraryFactory.ClientImpl._receiveMessage (VM14750 paho-mqtt.js:1502)
at ClientImpl.LibraryFactory.ClientImpl._receivePublish (VM14750 paho-mqtt.js:1477)
ReferenceError:未定义ReadingDate
位于Function.webpackJsonp.197.ParserProvider.parseDate(VM14753 main.js:300)
位于Function.webpackJsonp.197.ParserProvider.parseReading(VM14753 main.js:276)
在HomePage.webpackJsonp.195.HomePage.handleReading(VM14753 main.js:146)上
在VM14753 main.js:141
在VM14752 vendor.js:75337

在Array.forEach(

感谢您的帮助,特别是@osama建议使用try/catch查找错误。结果表明,我所需要做的就是导出ReadingDate类,然后将其导入到我的解析器文件中。这似乎与本文的问题相同/类似。

解析日期()也是如此
ReadingDate类的一个方法?Public是为构造函数推断的,应该删除。我相信您会遇到一些与值相关的其他问题,但从这一点开始。您确实意识到有一个方法可以提供所有这些值,而无需解析它们?PS您可以:
constructor(Public year:number,…)
那么您不必声明、传递和分配您试图实例化ReadingDate的位置,您是否先执行了
console.log(parseInt(dataArray[0]))
等以确保每个数组元素传递预期值?所有这些设置是否都如预期的那样?ReadingDate是否实现了toString()?请提供一个如何调用此代码的示例,例如将
date
的值传递到
parseDate
中。换句话说,a.亲爱的@Maegz记住始终使用导出和导入,请始终发布整个类。
ReferenceError: ReadingDate is not defined
at Function.webpackJsonp.197.ParserProvider.parseDate (VM14753 main.js:300)
at Function.webpackJsonp.197.ParserProvider.parseReading (VM14753 main.js:276)
at HomePage.webpackJsonp.195.HomePage.handleReading (VM14753 main.js:146)
at VM14753 main.js:141
at VM14752 vendor.js:75337
at Array.forEach (<anonymous>)
at Events.publish (VM14752 vendor.js:75336)
at ClientImpl.MqttProvider.onMessageArrived (VM14753 main.js:228)
at ClientImpl.LibraryFactory.ClientImpl._receiveMessage (VM14750 paho-mqtt.js:1502)
at ClientImpl.LibraryFactory.ClientImpl._receivePublish (VM14750 paho-mqtt.js:1477)