Javascript Node.js中的SetTimeout问题

Javascript Node.js中的SetTimeout问题,javascript,node.js,v8,Javascript,Node.js,V8,我有以下代码,在Chrome(V8)下运行良好,但在节点内部失败: var id; id = setTimeout("TimeoutHandler()", 10); console.log ('SET'); function TimeoutHandler() { clearTimeout(id); console.log ('CLEAR'); } 铬输出: SET CLEAR Nodejs输出: SET timers.js:110 first._onTimeout();

我有以下代码,在Chrome(V8)下运行良好,但在节点内部失败:

var id;
id = setTimeout("TimeoutHandler()", 10);
console.log ('SET');

function TimeoutHandler()
{
  clearTimeout(id);
  console.log ('CLEAR');
}
铬输出:

SET 
CLEAR 
Nodejs输出:

SET
timers.js:110
    first._onTimeout();
          ^
TypeError: Property '_onTimeout' of object [object Object] is not a function
    at Timer.listOnTimeout [as ontimeout] (timers.js:110:15)
你知道为什么吗?
谢谢

与大多数浏览器不同,node.js中的
setTimeout
不接受字符串参数。您必须向它传递一个函数。例如:

function TimeoutHandler()
{
  clearTimeout(id);
  console.log ('CLEAR');
}

var id;
id = setTimeout(TimeoutHandler, 10);
console.log ('SET');

有趣的是,NodeJS没有对参数进行类型检查。如果有,它可以提供更清晰的错误信息。