node.js setInterval第一个参数是函数定义

nodejs qmt 7℃

如果代码是这样的:

function showName(){
console.log('hello world');
}

setTimeout(showName(), 5000);

那么上面的代码并不会按照预期那样定期5秒钟运行一次。

来看看setInterval的定义

setInterval(callback, delay, [arg1], [arg2], [...]);
callback:需要重复执行的函数。
delay:延迟的时间(以毫秒为单位)。
[arg1], [arg2], [...]:可选参数,这些参数将传递给callback函数。

第一个是回调函数,也就是函数的定义。比如上面的是 是showName,是没有括号的。
如果加了括号showName(), 实际上是执行了这个函数,得到的是一个返回值,二showName里面没有返回值,所以默认是null,
所以上面的代码等效于

setTimeout(null, 5000);

所以就不会定时打印hello world的输出了。

转载请注明:QMT|Ptrade量化交易 » node.js setInterval第一个参数是函数定义

喜欢 (0)