Подтвердить что ты не робот

Ошибка SetTimeout в Node.js

У меня есть следующий код, который отлично работает в Chrome (V8), но не работает внутри node:

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)

Любые идеи, почему? Благодаря

4b9b3361

Ответ 1

В отличие от большинства браузеров setTimeout в node.js не принимает строковый параметр. Вы должны передать ему функцию. Например:

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

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