有没有办法使用 javascript 或 jquery 检查函数是否已完成其操作?
我正在尝试使用 setTimeout 制作一个随着数字变大而减慢的计数器(如果你愿意,可以减慢输出)。如您所知,数字越大,延迟时间越长(在 setTimeout 中)。
我要做的是单击一个按钮,然后在屏幕上打印当前循环迭代。此循环数用作 setTimeout 延迟,因此当数字较低时,它会迅速冲过,随着它变大延迟较大,因此使其打印数字更慢(因为此数字是延迟,延迟越大它打印的频率越低)。
Here is the logic I'm trying to accomplish
1. Click button
2. Initiate loop
3. trigger function to set timeout
4. set timeout triggers a function to print the loop iteration #
5. Repeat step 3 until the number of set iterations is completed
好吧,正如您所看到的,当设置超时时,循环将继续,但会有超时延迟。有什么办法可以放置一个暂停类型的函数,等待超时函数完成,然后继续下一次迭代?
这是我的代码
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
</head>
<body>
<form>
<input type="button" value="Display alert box"
onclick="setMessage()" />
<script>
function setMessage(){
for(i=0;i<5000;i++){
var b = i;
timeMsg();
//some sort of puase here checking until timeMsg & docWrite are completed, then continue to the next iteration
}
}
function timeMsg(){
var t=setTimeout("docWrite()",b);
}
function docWrite(){
document.write(i);
}
</script>
</form>
</body>
</html>