加了setTimeout,代码执行顺序就出问题了,如何让代码顺序执行?

volking 2013-08-14 11:27:49

看代码:

if (confirm("确认要删除?")) {
alert(1);
setTimeout(function(){alert(2);}, 1000);
alert(3);
}
alert(4);


我以为输出的是1 2 3 4,结果输出的是 1 3 4 2。

这个代码怎么改才会按照1234输出呢?目的就是1、2之间要延迟1秒钟执行。
java有sleep,javascript如何实现?
网上我也看过一下代码,好像效率不是很好。
...全文
329 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ftiger 2013-08-17
  • 打赏
  • 举报
回复
setTimeout 相当于定时开一个新的进程,与启动setTimeout的进程没有关系了。
hch126163 2013-08-17
  • 打赏
  • 举报
回复
用回调函数!!
似梦飞花 2013-08-17
  • 打赏
  • 举报
回复
setTimeout不会阻止程序继续向下运行的 所以不会等待输出2而直接向下运行了
zhjdg 2013-08-17
  • 打赏
  • 举报
回复
setInterval(XX,15); 时时刻刻,无时无刻,的调用,一般用在动画中。 on('event',XX),一般绑在事件中。 javascript就只有上面两种情况,两种用法
hudingwen1908 2013-08-16
  • 打赏
  • 举报
回复
楼主知道setTimeout是神马回事么
阿鱼 2013-08-14
  • 打赏
  • 举报
回复
可以理解为一个小异步,如果没有特殊要求,把要按顺序执行的代码依次写在回调函数(在这里就是setTimeout里面传入的函数)里就行了。

if (confirm("确认要删除?")) {
  alert(1);
  setTimeout(function(){alert(2);alert(3);alert(4);}, 1000);
}
萝莉狼 2013-08-14
  • 打赏
  • 举报
回复
一般都是把后面的都放在setTimeout调用的函数里。

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧