当我执行以下代码时,
似乎
我可以很容易地解决这个问题,但我只是好奇为什么它会表现出这种行为--这使得传递参数值有点不方便,因为我不能在
incidentController
会在10
秒后被调用,并且每10
秒继续执行而没有任何问题:// This works fine in nodejs v0.11.13
setInterval(incidentController, 10 * 1000);
function incidentController () {
console.log ('executed');
}
然而,这个代码会立即执行,并在第二次迭代中抛出以下错误:
//This doesn't. The parens which wrap (123) cause the error.
setInterval(incidentController(123), 10 * 1000);
function incidentController (someInt) {
console.log ('executed: ', someInt);
}
错误:
timers.js:287
callback.apply(this, args);
^
TypeError: Cannot read property 'apply' of undefined
at wrapper [as _onTimeout] (timers.js:287:13)
at Timer.listOnTimeout (timers.js:133:15)
似乎
incidentController
以某种方式变为/变成 undefined
。有人能解释为什么这是预期行为吗(我认为它是预期的)?我可以很容易地解决这个问题,但我只是好奇为什么它会表现出这种行为--这使得传递参数值有点不方便,因为我不能在
setInterval
语句内部执行此操作。