我收到错误:
{“__zone_symbol_currentTask”:{“type”:“microTask”,“state”:“notScheduled”,“source”:“Promise.then”,“zone”:“angular”,“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
});
}
您能告诉我这是为什么以及如何解决它吗?我将不胜感激任何答案!
我应该注意到,任何人都不太可能看到此代码中的原始错误,因为它部分取决于外部依赖项。相反,这个“答案”试图为您提供一种方法来确定为什么您收到不完整的错误消息以及如何识别实际的错误消息。我希望这有帮助!
错误信息缺失的原因
您遇到的根本问题被两个事实掩盖了:
- The
__zone_symbol_currentTask
是 Angular 插入到 Error 对象中的属性。
-
JSON.stringify
不输出Error对象自身的属性(默认情况下)
因此,您在 JSON 化输出中看到的唯一错误属性是 Angular 引入的看起来很奇怪的属性。
解决方法
要记录底层错误详细信息,您可以尝试以下操作:
JSON.stringify(err, Object.getOwnPropertyNames(err))
尽管通常不建议这样做,但您could如果 Angular 插入的属性确实让你烦恼,请删除它:
delete error.__zone_symbol__currentTask
也可以看看:是否无法使用 JSON.stringify 对错误进行字符串化? https://stackoverflow.com/questions/18391212/is-it-not-possible-to-stringify-an-error-using-json-stringify
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)