我使用setTimeout函数每2秒调用一次函数,这是我的代码
这是我的代码
ComboBox
https://jsfiddle.net/bh44ugv6/1/
但是请你告诉我为什么在这种情况下没有调用setTimeOut?
答案 0 :(得分:7)
当您致电main
时未设置fetchdata
,因此setTimeout(fetchdata, 2000);
使用undefined
设置main()
后,您需要致电fetchdata
:
(function () {
function main() {
setTimeout(fetchdata, 2000);
}
var fetchdata = function () {
alert("Boom!");
};
main();
})();
或者改为使用命名函数:
(function () {
main();
function main() {
setTimeout(fetchdata, 2000);
}
function fetchdata() {
alert("Boom!");
};
})();
答案 1 :(得分:1)
因为fetchData
尚不存在。如果您将其更改为:
function fetchdata() {
alert("Boom!");
};
它有效。
答案 2 :(得分:1)
由于fetchdata
中的main
为undefined
,如果您想使用Function Expressions,则应在main
之前定义它,就像这样
(function () {
var fetchdata = function () {
console.log("Boom!");
}
main();
function main() {
setTimeout(fetchdata, 2000);
}
})();
您也可以将fetchdata
定义为Function Declaration
(function () {
main();
function main() {
setTimeout(fetchdata, 2000);
}
function fetchdata() {
console.log("Boom!");
};
})();