我使用的是typescript/node.js代码库,其中有一个正常调用的函数:
func('param1', 'param2', param3')
这个函数没有返回值,但当代码运行时,它会将不同类型的输出打印到终端-这个输出可能是正常的console.log
语句或某种错误。我希望能够捕获函数打印到变量中的任何内容,以便以后使用-有人知道如何捕获函数输出到变量中吗?(这样我以后可以在if统计中使用它(
如果函数使用console.log
输出值,则可以将其重写为:
console.lg = console.log;
console.log = function(arg)
{
console.lg(arg);
global.myOutput = arg;
};
然后调用您的函数,然后检查global.myOutput的值。此外,您可以将所有这些逻辑传递到一个对象中:
const logCapture = {
output: null,
enable() {
console.lg = console.log;
const that = this;
console.log = function(arg) {
console.lg(arg);
that.output = arg;
};
},
getOutput() {
return this.output;
},
disable() {
console.log = console.lg;
console.lg = undefined;
}
}
并使用它:
logCapture.enable();
callToFunction(...);
let myVar = logCapture.getOutput();
logCapture.disable();
我宁愿创建一个包装器函数,它将负责打印到控制台并更新全局变量。
let log = function(msg){
console.log(msg);
outputLog += msg + "n";
}
如果您想调用console.log,请使用log((代替