第一次迭代后,由于变量i未定义,因此setTimeout失败,结果是我在控制台中看到pollundefined错误
请原谅,我是一个Java专家,对UI方面的了解很少
var symbols = [ "ONE","TWO"];
var i = 0;
$(document).ready(function () {
callPoll();
});
function callPoll() {
poll(symbols[i]);
i++;
if (i < symbols.length)
setTimeout(callPoll, 1500);
}
setTimeout(callPoll, 3000);
function poll(value) {
alert('poll'+value);
}
最佳答案
i
不是未定义的,symbols[i]
是未定义的。您将两次启动序列,一次是在setTimeout(callPoll, 3000);
,另一次是在$(document).ready
触发时。您正在建立一个呼叫,该呼叫将在i
超出symbols
的输入范围后触发。删除对setTimeout
的第一个呼叫。
var symbols = [ "ONE","TWO"];
var i = 0;
$(document).ready(function () {
callPoll();
}
);
function callPoll() {
poll(symbols[i]);
i++;
if (i < symbols.length) {
setTimeout(callPoll, 1500);
}
else {
// reset cycle
i = 0;
setTimeout(callPoll, 3000);
}
}
function poll(value)
{
alert('poll'+value);
}
关于javascript - setTimeout在第一次迭代后失败,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23664436/