延迟的for循环保持返回相同的值

时间:2018-06-22 11:04:41

标签: javascript for-loop

无论我做什么,我的for循环延迟都会返回“ -1”。

for (var i = 5; i > 0; i--) {
    setTimeout(function() {
        console.log(i)
    }, i * 1000)
}

(我将变量更改为5)

1 个答案:

答案 0 :(得分:1)

最简单的方法是在for内调用一个函数,然后让该函数处理setTimeout

for (var i = 5; i > 0; i--) {
  fnSetTimeout(i);
}     
            
function fnSetTimeout(i) {
 setTimeout(function() { console.log(i); }, 1000 * i);
}