Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何解决';TypeError:Property'_onTimeout';对象#<;对象>;不是一个函数';在节点中?_Javascript_Node.js - Fatal编程技术网

Javascript 如何解决';TypeError:Property'_onTimeout';对象#<;对象>;不是一个函数';在节点中?

Javascript 如何解决';TypeError:Property'_onTimeout';对象#<;对象>;不是一个函数';在节点中?,javascript,node.js,Javascript,Node.js,以下代码片段: var theAdNets = new Array(); function populateAdNetList() { } //update the list every 5 minutes. setInterval("populateAdNetList()",300000); //fetch it in 5 seconds. setTimeout("populateAdNetList();",5000); 产生以下错误: TypeError: Property '_o

以下代码片段:

var theAdNets = new Array();

function populateAdNetList() {


}

//update the list every 5 minutes.
setInterval("populateAdNetList()",300000);
//fetch it in 5 seconds.
setTimeout("populateAdNetList();",5000);
产生以下错误:

TypeError: Property '_onTimeout' of object #<Object> is not a function
    at Timer.callback (timers.js:83:39)
TypeError:对象的属性“\u onTimeout”不是函数
在Timer.callback(timers.js:83:39)
populateAdNetList()是一个函数而不是一个对象。函数()的主体中没有对“this”的引用{}。为什么会发生这种情况?

简单地尝试一下

setInterval(populateAdNetList,300000);
//fetch it in 5 seconds.
setTimeout(populateAdNetList,5000);

您必须将函数传递给
setInterval
。不是字符串,也不是函数的结果(直到它也是函数)。正确的语法:

setInterval(populateAdNetList, 300000);
setTimeout(populateAdNetList, 5000);

这很可能是一个范围问题。如果函数是在函数或对象中本地定义的,那么它在将计算字符串的全局范围中不可用

将函数移到全局作用域,或在调用中使用函数引用,以避免作用域问题:

//update the list every 5 minutes.
setInterval(populateAdNetList,300000);
//fetch it in 5 seconds.
setTimeout(populateAdNetList,5000);

这是不对的。字符串是
setTimeout
方法的有效第一个参数,它实际上是原始形式。后来添加了同时使用函数的功能。@Guffa我知道这个注释已经有5年了,但到目前为止,节点中的
setTimeout()
不接受第一个参数的字符串。