我正在使用节点4.2,我正在捕获错误并在其上使用JSON.stringify。对于大多数对象,这很好。但是当抛出[TypeError:callback不是函数]时,它返回一个空对象。如果我直接控制它。它可以正常工作。
Mozilla的页面说:
在字符串化过程中,Boolean,Number和String对象将转换为相应的原始值,符合传统的转换语义。
try {
...
} catch (err) {
console.log('error: ' + JSON.stringify(err)) // outputs {}
}
答案 0 :(得分:9)
在TypeError上使用时,您将对没有
enumerable
属性的对象进行字符串化。
所以,如果你这样做
$decoded = json_decode($json_file2);
$comments = $decoded->data[0]->results->resultado;
$fp = fopen('stock2.csv', 'w');
foreach($comments as $comment){
fputcsv($fp,$comment);
}
使用$decoded = json_decode($json_file2);
$comments = $decoded->data[0]->results->resultado;
$fp = fopen('stock2.csv', 'w');
foreach($comments as $comment){
fputcsv($fp,$comment);
}
进行记录时,您正在使用,所以
stringify
此外,错误知道如何将自己变成一个字符串,所以这也适用:
var typeError = new TypeError("hey")
for(var prop in typeError) {
console.log(prop) // this does not run
}
如果要记录对象的属性而无法使用普通日志,则可以console.dir
该对象。
当您在console.log
上执行此操作时,您会发现它具有valueOf
属性: