Node.js中的SetTimeout问题

Jos*_*ese 14 javascript v8 node.js

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

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

function TimeoutHandler()
{
  clearTimeout(id);
  console.log ('CLEAR');
}
Run Code Online (Sandbox Code Playgroud)

Chrome输出:

SET 
CLEAR 
Run Code Online (Sandbox Code Playgroud)

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)
Run Code Online (Sandbox Code Playgroud)

有什么想法吗?谢谢

Aar*_*our 23

与大多数浏览器不同,setTimeoutnode.js不接受字符串参数.你必须传递一个函数.例如:

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

var id;
id = setTimeout(TimeoutHandler, 10);
console.log ('SET');
Run Code Online (Sandbox Code Playgroud)