JavaScript中setInterval()循环执行时,如何让它循环完全结束后再执行一个alert()?

比如下面的代码,页面每过一秒就会输出执行了几秒,直到第Math.random()*10秒程序执行完成(我知道时间不准确,但这里不是重点,忽略),然后输出一共执行了几秒,再... 比如下面的代码,页面每过一秒就会输出执行了几秒,直到第Math.random()*10秒程序执行完成(我知道时间不准确,但这里不是重点,忽略),然后输出一共执行了几秒,再弹出一个alert()提示执行完毕。
理想情况是这样的,但实际却不是这样。
实际它的执行顺序是,前面的都很正常,直到最后一步的时候,它会先弹出一个alert()提示执行完毕,然后再输出第几秒,最后才输出共几秒。
求,这个怎么解决?如何才能让整个setInterval()执行完毕之后再弹出alert()?
var timesRun = 0;
time=setInterval(function(){
timesRun++;
输出:第timesRun秒;
if(timesRun >= Math.ceil(Math.random()*10)){
clearInterval(time);
输出:共timesRun秒;
alert(“执行完毕”);
}
},1000);
展开
 我来答
网海1书生
科技发烧友

2019-08-10 · 擅长软件设计、WEB应用开发、小程序
网海1书生
采纳数:12311 获赞数:26228

向TA提问 私信TA
展开全部
这是因为alert弹出的是系统级的模态窗口,它弹出后当前程序就会被挂起,包括正在进行(但尚未完成)的输出操作,这样就会出现要关闭alert框才能看到输出结果的情况。
其实在setInterval中最好不要使用alert,可以自己做一个漂浮层来输出信息,这样就可保证程序不会被强行卡住。
如果一定要用alert,那么可以让它延时执行,比如
setTimeout('alert("执行完毕");', 500);
百度网友00542c4ee6
游戏玩家

2019-08-10 · 游戏我都懂点儿,问我就对了
知道答主
回答量:61
采纳率:50%
帮助的人:29万
展开全部

您好,如图所示可以解决您的问题

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式