setTimeout第三个参数

Posted 哈娄

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了setTimeout第三个参数相关的知识,希望对你有一定的参考价值。

平时都是用setTimeout做一个延时,都是使用两个参数,第一个是个函数,第二个是延时的时间。但是他第三个参数也是很好用的。

场景:

有循环中需要用setTimeout处理的,但是for循环是同步,setTimeout是异步,这样的结果就是输出5次5

for (let i=0;i<4;i++) 
    setTimeout(() => 
        console.log(i)
    , 1000)

闭包解决:

常规的解决办法就是写个闭包来解决这个问题。输出0,1,2,3

for (let i=0;i<4;i++) 
    ((i) => 
        setTimeout(() => 
            console.log(i)
        , 1000)
    )(i)

第三个参数解决:

使用第三个参数解决,写法会很简单。其实第三个参数就是给第一个函数传参数,这样是不是很方便啊。输出0,1,2,3

for (let i=0;i<4;i++) 
    setTimeout((i) => 
        console.log(i)
    , 1000,i)

以上是关于setTimeout第三个参数的主要内容,如果未能解决你的问题,请参考以下文章

setTimeOut的第三个参数

setTimeout第三个参数

setTimeout第三个参数

setTimeout第三个参数

javascript 中settimeout()的第三个参数的使用

setTimeoutsetInterval第三个参数