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

JavaScript014

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

我们先来看一个例子

在JS方法里面设置一个for循环,输出每次循环的值,如下图

我们可以根据闭包的知识来更改一下for循环中的逻辑,利用闭包将i的值传递给a

这次在运行程序我们就可以看到输出内容是0开始输出了

结果如下图

JS中如果for循环中有异步方法,就需要用闭包的方式保留当前循环变量值

点击后等待调个睡眠函数,再接着执行正常逻辑

function sleep(delay) { //delay:传入等待秒数

var start = (new Date()).getTime() //获取函数刚开始秒数

while ((new Date()).getTime() - start <delay) { //当当前时间减去函数刚开始时间小于等待秒数时,循环一直进行

continue

}