多语言展示
当前在线:1863今日阅读:103今日分享:49

JS中如何解决for循环中的延迟执行问题

我们编写JS的时候经常会在for循环中执行一些异步方法,比如设置一个定时器任务,但是通常在这些异步方法中没有办法获取循环变量的值。这该怎么做呢?下面小编给搭建分享一下。
工具/原料

Sublime Text

方法/步骤
1

首先我们打开Sublime Text软件,新建一个HTML的文档,如下图所示

2

接下来在html中添加JS方法,在JS方法里面设置一个for循环,输出每次循环的值,如下图所示

3

然后我们运行程序,你会看到在输出栏中输出了10次10,而并没有从1开始输出,如下图所示

4

接下来我们更改一下for循环中的逻辑,利用闭包将i的值传递给a,如下图所示

5

这次在运行程序我们就可以看到输出内容是1开始输出了,如下图所示

6

另外,在JS中刚才的写法还可以按照下面的方式实现,如下图所示

7

综上所述,在JS中如果for循环中有异步方法,就需要用闭包的方式保留当前循环变量值,是不是很简单啊

推荐信息