【发布时间】:2019-04-13 12:40:26
【问题描述】:
我想要这个输出 1,1,1,....
而不是 2,1
我想同步运行
//just wait 2 seconds
function s(callback){
setTimeout(() => {
callback()
}, 2000);
}
a=[2]
while (a.length!==0){
a.shift()
s(()=>{
a.push(2)
console.log('1');
})
}
console.log('2');
【问题讨论】:
-
这是同步运行的。
setTimeout并不意味着代码正在异步运行 -
这个问题可能已经在那里解决了:stackoverflow.com/questions/4122268/…
-
你要无限循环打印 1 吗?
-
尚不清楚为什么数组甚至存在于
a=[2],但知道其中的原因会很有趣——尽管它似乎不是问题的一部分。 -
作为一个无限循环,这最终可能会在检测到这一点的现代浏览器中弹出一个错误。
标签: javascript while-loop callback synchronous