js异步执行(setTimeout)遇到的坑
程序员文章站
2023-11-14 16:21:16
js异步执行(settimeout)遇到的坑
for(var i=0;i<5;i++){
var f=settimeout(function(){
c...
js异步执行(settimeout)遇到的坑
for(var i=0;i<5;i++){ var f=settimeout(function(){ console.log(i); },i*1000); console.log(f); }
上面代码输出:
1
2
3
4
5
5个5,每隔1s输出一次
1,2,3,4,5是f的循环输出,也是settimeout的返回值,返回值从1开始,每执行1次,返回值加1
5个5是因为异步执行的原因,每隔1s输出一次,是因为i*1000是在for循环时就执行了的,不属于异步执行的范围。