对于一般性问题,我很抱歉,但我真的希望能够处理这个问题。
我习惯于编写实时Java或PHP语言,程序逐行执行,但有时我会使用javascript,因为它有很好的库。
异步的东西让我疯狂。
document.body.innerHTML = "";
for(var i=0;i<3;i++){
document.body.innerHTML+="Hi! ";
alert();
}
我希望这段代码能够像这样工作:
实际上它的工作原理如下:
如何让javascript代码像普通程序一样?
谢谢!
更新:
第一个重复建议根本不重复。它有完全不同的代码(我甚至不使用setTimeout),不同的任务和不同的解释。即使我的问题的答案隐藏在某处(在评论编号56或类似的东西),它是如此不清楚,不应被视为重复。
第二个重复建议中的选定解决方案根本不起作用:
function b(){
document.body.innerHTML = ""; for(var i=0;i<3;i++){
document.body.innerHTML+="Hi! ";
alert();
}
}
function c(){
setTimeout(b, 1);
};
c();
所以不,这些链接都不是重复的。
答案 0 :(得分:0)
您可以尝试这样的事情:
document.body.innerHTML = "";
function update() {
document.body.innerHTML += "Hi! ";
alert();
}
for (var i = 0; i < 3; i++) {
setTimeout(update, 0);
}
编辑: 有点难看,但这应该做的工作
let i = 0;
document.body.innerHTML = "";
requestAnimationFrame(function next() {
document.body.innerHTML += "Hi! ";
i++;
setTimeout(function() {
alert();
if (i < 3) {
requestAnimationFrame(next);
}
}, 0)
})