gpt4 book ai didi

javascript - setInterval 似乎不喜欢它调用的函数中的 () 。为什么?

转载 作者:搜寻专家 更新时间:2023-10-31 23:30:43 25 4
gpt4 key购买 nike

<分区>

当我执行以下命令时,incidentController10 秒后被调用,并且每隔 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 中这样做声明本身。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com