SetTimeout issue in Node.js

柔情痞子 提交于 2019-12-10 12:31:57

问题


I've the following code which runs fine under Chrome (V8) but fails inside node:

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

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

Chrome output:

SET 
CLEAR 

Nodejs output:

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)

Any ideas why? Thanks


回答1:


Unlike in most browsers, setTimeout in node.js does not accept a string parameter. You must pass it a function. For example:

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

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


来源:https://stackoverflow.com/questions/16467398/settimeout-issue-in-node-js

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!