咨询nodejs中setInterval问题~
为何以下两种代码的运行结果不一样呢?
setInterval(function(){console.log(2);},1000);
可以正常运行。
function aa(){
console.log(1);
}
setInterval('aa()',1000);
写成这个样子就会报错,错误信息为:
timers.js:232
callback.apply(timer, args);
^
TypeError: Object aa() has no method 'apply'
at Timer.exports.setInterval.timer.ontimeout (timers.js:232:14)
8 回复
setInterval(aa,1000);
果然OK了,谢谢。但是在前面页面上用的话是要加单引号的吧?
js基础问题,第一个参数应该是一个函数,Node会在回调中调用参数的apply方法
基础问题。 aa() 是在运行函数。 aa() 要返回一个函数就不会错了。
好的,谢谢。我被w3school的示例误导了,看来有所不同的。http://www.w3school.com.cn/htmldom/met_win_setinterval.asp
好的,谢谢。我被w3school的示例误导了,看来有所不同的。http://www.w3school.com.cn/htmldom/met_win_setinterval.asp
@xuhaijinsky2008 不是误导,w3c里面那种用法是在浏览器环境下支持的。如果是字符串类型,会使用类似eval的方式去执行。Nodejs环境下貌似不支持传字符串,也不推荐这么做
@wbpmrck 明白了,呵呵,多谢。