具体:
- 我有一个需要在 5 秒后运行的代码
- 该代码在函数内部
- 该函数被 setTimeout() 中的另一个函数多次调用
发生的事情是它第一次运行正常......但在下一次运行时它不会等待那 5 秒!
代码如下所示:
//==================== create variables: ====================
var x = 0;
//==================== create functions: ====================
function wait5s() {
setTimeout(function() {
alert("alert # " + x + "\nNext alert will pop up in 5 seconds now!");
}, 5000);
x++;
}
function repeat5times(){
while (x<5) {
wait5s()
}
}
//==================== run this: ====================
alert("Click Ok and Wait 10 seconds for next alert!");
setTimeout(function() {
repeat5times();
}, 5000);
这段代码不是我的原始代码,但问题是一样的: - x 在警报弹出之前增加到 5!然后他们一个接一个地弹出!我试图把x++;
setTimeout 里面的 wait5s()... 但是浏览器停止响应!:(
我希望每个警报之间有 5 秒的延迟!
那么,我做错了什么?:\ 提前致谢 ;)