美文网首页
小实验: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