考虑以下代码:
let id = setInterval(function f() {console.log("Nice.");}, 1000);
console.log(id);
JSON.stringify(id);
这以最后一行
TypeError: Converting circular structure to JSON
的错误结束。console.log(id)
给出Timeout {
_called: false,
_idleTimeout: 1000,
_idlePrev:
TimersList {
_idleNext: [Circular],
_idlePrev: [Circular],
_timer: Timer { '0': [Function: listOnTimeout], _list: [Circular] },
_unrefed: false,
msecs: 1000,
nextTick: false },
_idleNext:
TimersList {
_idleNext: [Circular],
_idlePrev: [Circular],
_timer: Timer { '0': [Function: listOnTimeout], _list: [Circular] },
_unrefed: false,
msecs: 1000,
nextTick: false },
_idleStart: 81,
_onTimeout: [Function: f],
_timerArgs: undefined,
_repeat: 1000,
_destroyed: false,
[Symbol(asyncId)]: 6,
[Symbol(triggerAsyncId)]: 1 }
为什么超时对象包含循环引用?
最佳答案
请注意,node.js中的setInterval
与javascript中的setInterval
行为不同。虽然javascript版本返回整数,但node.js returns a Timeout object.并不用于序列化。
关于javascript - 为什么setInterval()给出循环引用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51526315/