当抛出异常以获取准确的时间限制时,我想使用函数调用的调用堆栈。 我知道,从调用堆栈中,我可以为每个调用获取其名称以及其调用者名称+线路+文件。但是是否可以知道每个调用函数的时间戳?
function callA() {
callB();
}
function callB() {
callC();
}
function callC() {
throw new Error('Boom');
}
Chrome控制台打印的内容是:
Uncaught Error: Boom
at callC (<anonymous>:13:8)
at callB (<anonymous>:8:2)
at callA (<anonymous>:3:2)
at <anonymous>:1:1
我想在我的js代码中使用的东西就像:
Uncaught Error: Boom
at callC (<anonymous>:13:8) timestamp : 1559117311448
at callB (<anonymous>:8:2) timestamp : 1559117311449
at callA (<anonymous>:3:2) timestamp : 1559117311449
at <anonymous>:1:1
答案 0 :(得分:0)
Math.floor(Date.now() / 1000)
表示从1970年1月1日开始的秒数。或精确的持续时间类型(从开始到结束)performance.now()
function callA() {
console.log(performance.now());
callB();
console.log(performance.now());
}
function callB() {
let t0 = performance.now();
callC();
let t1 = performance.now();
console.log(`Start: ${t0} End: ${t1}`);
}
function callC() {
throw new Error('Boom');
console.log(Math.floor(Date.now() / 1000))
}