js实现异步循环实现代码
来源:互联网 发布:淘宝差评怎么写才过瘾 编辑:程序博客网 时间:2024/06/04 00:25
让我们试着写一个异步方法,一次循环打印一次循环的索引值。
for(var i = 0; i < 5; i++){setTimeout(function(){document.writeln(i);document.writeln("<br />");},1000); }
如上程序的输出为:
5
5
5
5
5
原因
每次时间结束(timeout)都指向原始的i,而并非它的拷贝。所以,for循环使i增长到5,之后timeout运行并调用了当前i的值(也就是5)。
解决方法
有几个不同的方式可以拷贝i。最普通且常用方法是通过声明函数来建立一个闭包,并将i传给此函数。我们这里使用了自调用函数。
运行代码
for(var i = 0; i < 5; i++){(function(num){setTimeout(function(){document.writeln(num);document.writeln("<br />");},1000);})(i); }
输出
0
1
2
3
4
阅读全文
0 0
- js实现异步循环实现代码
- 理解Node.js的事件循环(代码是异步单线程,内部实现用的还是进程和线程,基于池化的线程实现异步)
- Js实现异步刷新
- JS异步实现Generator
- JS 异步队列的实现
- JS的异步加载实现
- js实现伪异步操作
- js 异步实现与编程
- js异步的实现方式
- js 异步实现与编程
- 同步异步实现代码小结
- ListenableFuture异步多线程代码实现
- js定时循环实现秒表
- 循环链表(js实现)
- UIScrollView代码实现循环滚动
- UIScrollView代码实现循环滚动
- 循环右移实现代码
- UIScrollView代码实现循环滚动
- 打擂台算法
- 膜拜 丹尼斯·里奇(纪念 C 语言之父离世 6 周年) 我们欠他的不止是张电影票
- Internet Download Manager(idm下载器)官方中文版V6.29.2下载 | idm破解版
- Hibernate validate 实现简单的表单校验
- Unreal4 后期处理材质
- js实现异步循环实现代码
- Solovary-Strassen 计算幂次模n值 改进 位运算
- python-openvc 图像灰度化处理 图像二值化处理
- Python常用集锦(upgrading...)
- 热更新 反射application的方法
- 堆排序
- Yahoo军规-提高网站性能
- ID
- Android 轮播图(支持泛型数据源)