源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

js实现异步循环实现代码

  • 时间:2021-09-07 19:55 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:js实现异步循环实现代码
[b]问题 [/b]实现异步循环时,你可能会遇到问题。 让我们试着写一个异步方法,一次循环打印一次循环的索引值。
<script>
for(var i = 0; i < 5; i++){
setTimeout(function(){
document.writeln(i);document.writeln("<br />");
},1000);
}
</script>
如上程序的输出为: 5 5 5 5 5 原因 每次时间结束(timeout)都指向原始的i,而并非它的拷贝。所以,for循环使i增长到5,之后timeout运行并调用了当前i的值(也就是5)。 解决方法 有几个不同的方式可以拷贝i。最普通且常用方法是通过声明函数来建立一个闭包,并将i传给此函数。我们这里使用了自调用函数。 运行代码
<script>
for(var i = 0; i < 5; i++){
(function(num){
setTimeout(function(){
document.writeln(num);document.writeln("<br />");
},1000);
})(i);
}
</script>
输出 0 1 2 3 4
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部