14

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)

理由はありますか?ありがとう

4

1 に答える 1

23

ほとんどのブラウザーとは異なり、setTimeoutnode.js では文字列パラメーターを受け入れません。関数を渡す必要があります。例えば:

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

var id;
id = setTimeout(TimeoutHandler, 10);
console.log ('SET');
于 2013-05-09T17:29:18.713 に答える