美文网首页
小实验:setInterval里面使用await执行时间等待总结

小实验:setInterval里面使用await执行时间等待总结

作者: 周星星的学习笔记 | 来源:发表于2022-04-16 09:40 被阅读0次

    今天突然在想,如果在setInterval里面使用await等待一个比setInterval本身循环等待时间大的任务,那么那个任务按照什么样的时间频次进行执行呢?于是做了一下实验。

    一、实验代码

    test() {
        console.log('time1:' + new Date().getTime() / 1000)
        let timer = setInterval(async () => {
          await this.hello()
        }, 2000) //这里我们称为:duration1
    },
    async hello() {
        return new Promise((resolve) => {
          setTimeout(() => {
            console.log('time2:' + new Date().getTime() / 1000)
            resolve(true)
          }, 5000) //这里我们称为:duration2
        })
    }
    

    二、实验结果

    结果

    三、总结一下

    • 经过实验可得出,不管duration1是否大于duration2,初次执行任务time1与time2相差(duration1 + duration2),后面任务再继续执行的时候,彼此之间相差的时间为duration1,与任务本身的duration2无关了。
    • 也就是说如果在setInterval里面使用await等待执行一个任务的时候,不管任务本身需要花费多长时间,最终将会以setInterval的时间频次执行。

    相关文章

      网友评论

          本文标题:小实验:setInterval里面使用await执行时间等待总结

          本文链接:https://www.haomeiwen.com/subject/zsicertx.html