for (var i = 0; i <= 2; ++i) {
display_para(i);
};
function display_para(i){
setInterval(function(){
console.log(i);
//Stuff to be done
}, 1500 + i * 2000);
};
Expected result:
0 1 2 ; 0 1 2; 0 1 2 and so on.
而它显示不同的输出,如屏幕截图所示。
我不明白我哪里出了问题。
最佳答案
这是因为您如何设置计时器,0
调用将每 1500 毫秒执行一次,1
调用将每 3500 毫秒执行一次,2
调用将每 3500 毫秒执行一次。每 5500 毫秒调用一次。
一种解决方案是使用单个interval
,其中基于计数器您决定要打印的值,例如
var i = 0;
setInterval(function() {
display_para(i);
if (++i > 2) {
i = 0;
}
}, 1500);
function display_para(i) {
document.body.innerHTML += i + '<br />'
};
关于javascript - 带 for 循环的 setInterval/setTimeOut 函数显示意外结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34938943/