我正在尝试将setInterval
函数的ID附加到JSON文件中,但它会出现错误TypeError: Converting circular structure to JSON
我的代码看起来像这样
var clearID = setInterval(function(){
//do stuff
},(60)*1000);
fs.readFile('path', 'utf8', function readFileCallback(err, data){
if (err) return console.log(err);
var doc = JSON.parse(data);
doc.IDs.shift();
doc.IDs.push(clearID);
var saved = JSON.stringify(doc);
fs.writeFile('path', saved, 'utf8', (err)=>{
if(err) return console.log(err);
});
});
我应该更改什么来阻止此错误?
答案 0 :(得分:0)
在NodeJS环境中,您无法将setInterval
调用的返回值转换为JSON字符串。您得到的错误非常明确,返回值包含一个或多个循环引用。
试试这个(在节点环境中):
var x = setInterval(function() { },100);
console.log(x);
参见循环参考?它们显示为[Circular]
在浏览器环境中,您将获得从setTimeout
或setInterval
返回的数字,而不是在节点中执行这些函数的情况。