【发布时间】:2017-05-23 02:58:15
【问题描述】:
此代码等待一秒钟并立即执行所有迭代:
for(let i=0;i<4;i++){
setTimeout(function(){console.log("Hello")},1000)
}
此代码按预期正确执行:
var i = 0;
function loop(){
setTimeout(function(){
console.log("Hello" + " " + Number(i+1))
i++
if(i<3){
loop()
}
},1000)
loop()
我的问题是为什么?这是否与 JavaScript 的同步单线程特性有关?为何如此?关于为什么会发生这种情况的解释是我的问题。
【问题讨论】:
标签: javascript for-loop recursion settimeout synchronous