我收到一个错误:
{"__zone_symbol_currentTask":{"type":"microTask",“状态”:“notScheduled”,“源”:“Promise.then”,“区域”:“角”,"cancelFn":null,“runCount”:0}
这就是密码:
async getNewData(id: number, path: string, howMany: number) {
let fileManagement: FileManagement = new FileManagement();
let result: any = null;
switch (id) {
case 0:
alert("pfad: " + path);
await fileManagement.readFile(path + "Tasks/", "task_" + howMany + ".tsk").then((text) => {
alert("text: " + text);
result = JSON.parse(text);
alert("ganz fertig");
}).catch((error)=>{
alert("nein, error: " + JSON.stringify(error));
});
default:
result = JSON.parse(this.getDataFromComponent(id, howMany, path));
//wenn komponenten aufgerufen werden sollen zum generieren
}
return result;
}
constructor(public navCtrl: NavController, private tts: TextToSpeech, navParams: NavParams) {
this.path = navParams.get('path'); //PFAD DES ÜBUNGSORDNERS HIER ÜBERGEBEN
this.newData.getNewData(0, this.path, this.fileCounter).then((data) => {
this.buffer = data;
this.fileCounter++;
this.nextChoice(0);
}).catch((error) => {
alert(JSON.stringify(error)); //here the error is thrown
});
}你能告诉我为什么会这样吗?我怎样才能修好它?我很感激你的回答!
发布于 2017-10-19 17:59:00
我应该指出,任何人都不太可能在这段代码中看到最初的错误,因为它在一定程度上取决于外部依赖关系。相反,这个“答案”试图为您提供一种方法来确定您为什么得到不完整的错误消息,以及如何识别实际的错误消息。我希望这能帮上忙!
丢失错误信息的原因
你所遇到的根本问题是被两个事实所掩盖:
__zone_symbol_currentTask是按角度插入错误对象的属性。JSON.stringify不输出错误对象自己的属性(默认情况下)因此,您在JSONified输出中看到的唯一错误属性是由角引入的奇怪的属性。
解决办法
要记录基础错误详细信息,可以尝试以下操作:
JSON.stringify(err, Object.getOwnPropertyNames(err))
虽然通常不推荐这样做,但如果确实困扰您,则可以删除按角插入的属性:
delete error.__zone_symbol__currentTask
另见:Is it not possible to stringify an Error using JSON.stringify?
https://stackoverflow.com/questions/45905118
复制相似问题