1 回答
TA贡献1780条经验 获得超1个赞
您可以使用 console.trace()
而不是 console.error()。
这是您在控制台上看到的:console.trace()
Trace
func3 @ js:24
func2 @ js:19
func1 @ js:15
(anonymous) @ js:12
而这与:console.error()
Custom Error
console.error @ snippet-javascript-console.min.js?v=1:1
func3 @ js:23
func2 @ js:19
func1 @ js:15
(anonymous) @ js:12
如果要将堆栈跟踪获取到变量中,而不仅仅是记录它,则可以使用 Error.captureStackTrace(targetObject) 或 Error().
stack
,但两者都是非标准的:
func1();
function func1() {
func2();
}
function func2() {
func3();
}
function func3() {
const fakeErrorObject = {};
Error.captureStackTrace(fakeErrorObject)
const captureStackTraceTrace = fakeErrorObject.stack;
const errorStackTrace = Error('Foo').stack;
console.log(captureStackTraceTrace.replaceAll('at', '👉'));
console.log(errorStackTrace.replaceAll('at', '👉'));
}
.as-console-wrapper {
max-height: none !important;
}
添加回答
举报