我想问题是控制台日志记录工具会产生副作用,因此不适合组合。
他们都回来了undefined
:
安慰
console.log("me")
me
<- undefined
console.warn("me")
me
<- undefined
console.error("me")
me
<- undefined
console.trace()
console.trace()
(anonymous function)
InjectedScript._evaluateOn
InjectedScript._evaluateAndWrap
InjectedScript.evaluate
<- undefined
我也会对 Javascript 自定义日志记录感兴趣,以访问漂亮的类似 printf 的格式化功能,例如 %o、%O、%d、%s、%c、...
安慰
console.log("%o", [[{}, 1, "two"]]);
[Array[3]]
0: Array[3]
0: Object
1: 1
2: "two"
length: 3
__proto__: Array[0]
length: 1
__proto__: Array[0]
<- undefined
它们还可以处理循环引用,这很难用JSON.stringify
.
我在 Google Chrome (canary) Source Snippets 中玩这个。
在那里我注意到它通过一个新的代码片段方案记录堆栈跟踪信息,但该链接只是打开一个空选项卡,无法访问那里的 devtools。
片段
try {
console.trace();
console.log("hi");
FIXME
} catch (exception) {
console.log(exception.stack);
}
安慰
console.trace() consolation.js:2
(anonymous function) consolation.js:2
hi consolation.js:3
ReferenceError: FIXME is not defined
at snippets:///14_224:4:5 consolation.js:6
undefined
但是,唉,至于你的问题,我没有答案。
将此作为评论写出来不会很好。