我在Chrome(V8)下运行正常的以下代码但在节点内部失败:
var id;
id = setTimeout("TimeoutHandler()", 10);
console.log ('SET');
function TimeoutHandler()
{
clearTimeout(id);
console.log ('CLEAR');
}
Chrome输出:
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)
任何想法为什么? 感谢
答案 0 :(得分:23)
与大多数浏览器不同,node.js中的setTimeout
不接受字符串参数。你必须传递一个函数。例如:
function TimeoutHandler()
{
clearTimeout(id);
console.log ('CLEAR');
}
var id;
id = setTimeout(TimeoutHandler, 10);
console.log ('SET');