欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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循环时就执行了的,不属于异步执行的范围。