在我的promise链中抛出一个Error对象时,我会附加一个“details”属性,以便处理程序可以知道在最终的catch块中如何处理它。
如果启用了日志记录,我在链的一部分所做的就是记录错误然后重新抛出它:
.somePartOfThePromiseChain
.catch(err => {
console.log("ERROR");
console.log(err.details);
debugger;
throw err;
});
这样可行,但是,如果我想要打印整个错误我没有按预期得到一个对象,但看起来不同的东西是这样的:
Error: My error description here
at API.js:105
at <anonymous>
虽然我期待Chrome开发工具中常见的可折叠对象格式。
我不确定为什么会发生这种情况,因为我基本上只想打印Error对象并在调试时查看其成员。这与我重新抛出错误无关,正如你想象的那样。
非常感谢。
答案 0 :(得分:2)
console.dir
(MDN,Chrome devtools docs)在大多数游戏机上都这样做:
try {
const e = new Error();
e.details = "details go here";
throw e;
} catch (ex) {
console.dir(ex);
}
(Look in the real console.)
答案 1 :(得分:0)
尝试将其包装在另一个对象中。
类似的东西:
console.log( {error} );