Node.js NodeJS中setTimeout中的计时器签名
获取Nodejs计时器签名的正确方法是什么? 浏览器返回整数,但NodeJS返回的内部对象似乎没有可解析字符串或数字的属性或方法。有什么办法得到这个吗 给定以下代码:Node.js NodeJS中setTimeout中的计时器签名,node.js,settimeout,Node.js,Settimeout,获取Nodejs计时器签名的正确方法是什么? 浏览器返回整数,但NodeJS返回的内部对象似乎没有可解析字符串或数字的属性或方法。有什么办法得到这个吗 给定以下代码: var x = setTimeout(()=>{},1); console.log(x)返回: Timeout { _called: false, _idleTimeout: 1, _idlePrev: [TimersList], _idleNext: [TimersList], _idleStart:
var x = setTimeout(()=>{},1);
console.log(x)返回:
Timeout {
_called: false,
_idleTimeout: 1,
_idlePrev: [TimersList],
_idleNext: [TimersList],
_idleStart: 2275,
_onTimeout: [Function],
_timerArgs: undefined,
_repeat: null,
_destroyed: false,
domain: [Domain],
[Symbol(unrefed)]: false,
[Symbol(asyncId)]: 73,
[Symbol(triggerId)]: 5 }
虽然浏览器返回(几乎是随机的)整数,如3
,但@blagus仍然如此
你的答案实际上存在于文档中。在这里,您可以看到来自nodejs文档的名为Symbol.toPrimitive
const timer=setTimeout(()=>{},100);
const timerID=timer[Symbol.toPrimitive]();
clearTimeout(timerID);//您可以在clearTimeout上直接使用此选项来清除或
//清除超时(计时器);//只需使用计时器本身=)
console.log(计时器[Symbol.toPrimitive]());//给您一个可序列化的id,它是一个数字bdw:)
控制台日志(计时器);
Hi@blagus,这里的目标是什么,我的意思是你想做什么?获取唯一的计时器id,不是作为对象,而是作为整数、字符串或类似的可序列化可识别密钥。为什么需要获取唯一的计时器id?Symbol.toPrimitive
对我来说是新事物。非常感谢!