Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js NodeJS中setTimeout中的计时器签名_Node.js_Settimeout - Fatal编程技术网

Node.js NodeJS中setTimeout中的计时器签名

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:

获取Nodejs计时器签名的正确方法是什么?

浏览器返回整数,但NodeJS返回的内部对象似乎没有可解析字符串或数字的属性或方法。有什么办法得到这个吗

给定以下代码:

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
对我来说是新事物。非常感谢!