首页 > 其他分享 >为什么要用setTimout来做定时器?

为什么要用setTimout来做定时器?

时间:2024-05-09 19:11:41浏览次数:18  
标签:定时器 setTimeout setTimout 要用 间隔 任务 时间 执行 堆积

Q:再js中定时任务 我们为什么要用setTimeout模拟,而不直接用setInterval

A:以下为详细答案

  1. 精确控制时间间隔: 使用 setTimeout 可以更精确地控制每次任务执行的时间间隔。因为在任务执行完成之后,我们可以根据需要再次设置下一个任务执行的时间,从而避免了可能因任务执行时间过长而导致的任务堆积。

  2. 避免任务堆积: 使用 setInterval 时,如果任务执行时间比设定的间隔长,就有可能导致任务堆积,即任务还未执行完毕,下一个任务已经开始执行。而使用 setTimeout 则可以确保每次任务都在上一个任务完成之后再次触发,从而避免了任务堆积的问题。

  3. 更灵活的控制: 使用 setTimeout 可以让我们更灵活地控制每次任务的执行逻辑,例如根据条件动态调整下一次任务的执行时间,或者在任务执行完成后进行额外的处理等。

标签:定时器,setTimeout,setTimout,要用,间隔,任务,时间,执行,堆积
From: https://www.cnblogs.com/never404/p/18182934

相关文章

  • springboot为什么要用延迟导入?
    SpringBoot使用了多种方式来实现自动配置,其中DeferredImportSelector接口是这些机制之一。DeferredImportSelector是ImportSelector的一个扩展,它允许延迟导入配置类直到所有@Configuration类都被处理完毕。这对于某些自动配置类需要在应用程序上下文的创建过程中的后期阶段才能......
  • 回忆录——ST定时器PWM输出
    老规矩,看图说写驱动RCC开GPIO及TIM时钟 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE); //开启TIM2的时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); //开启GPIOA的时钟选择时基源,配置时基单元,PSC、ARR、CNT点击查看代码 /*配置时钟源*/ TI......
  • 18_内核定时器
    内核定时器一.Linux内核定时器概念不同于单片机定时器,Linux内核定时器是一种基于未来时间点的计时方式,以当前时刻为启动的时间点,以未来的某一时刻为终止点。比如,现在是10点5分,我要定时5分钟,那么定时就是10点5分+5分钟=10点10分。这个和咱们的手机闹钟很类似。比如你要定一个第二......
  • stm32F07 HAL 库 通过定时器方式实现呼吸灯 自定义呼吸灯函数 (以参数方式设置io
    效果: 1、通过Stm32CubMX开启定时器、设置对应的io口,然后生成工程STM32CubeMX|STM32HAL库方式的微秒延时函数  2、自定义呼吸灯函数代码://呼吸灯函数//GPIO_TypeDef*GPIOx:GPIO组(A-G)//uint16_tGPIO_Pin:IO口(GPIO_Pin_0--GPIO_Pin_16)//......
  • FBWF(File-Based Write Filter)是Windows操作系统中的一种功能,主要用于保护系统的存储设
    FBWF(File-BasedWriteFilter)是Windows操作系统中的一种功能,主要用于保护系统的存储设备(如硬盘)免受意外写入或恶意软件的影响。它通过将所有对存储设备的写操作重定向到一个临时缓存中,从而保护存储设备的内容不被修改。FBWF的主要优点包括:简化系统管理:可以在不影响系统运行......
  • JMeter定时器(一)
    一前言环境:window10JMeter5.3二定时器定时器(Timers)的作用就是对取样器(sampler)的执行进行延迟,所以,定时器只对同作用域的取样器有意义定时器会在其所处作用域内的取样器之前执行。把定时器添加为取样器的子节点,这样就会在取样器之前执行1固定定时器这个比较简单,延迟时......
  • jmeter有很多个接口需要用到token,怎么简单操作?
     一、实现方法添加HTTP请求默认值:在你的测试计划中,添加一个HTTP请求默认值配置元件(HTTPRequestDefaults),用于设置所有HTTP请求的公共属性,包括服务器地址、端口号等。你可以在这里设置token,以便在所有请求中都能使用它。获取token:在测试计划中,添加一个HTTP请求,......
  • ORACLE定时器,执行周期设定
    对于DBA来说,数据库Job再熟悉不过了,因为经常要数据库定时的自动执行一些脚本,或做数据库备份,或做数据的提炼,或做数据库的性能优化,包括重建索引等等的工作。但是,Oracle定时器Job时间的处理上,千变万化,今天我把比较常用写法汇总如下:在总结之前,先把Job的参数一一说明一下:job参数是由Su......
  • Integer超过128要用对象比较,否则出问题
    一、测试代码publicvoidtestEquals(){intint1=12;intint2=12;Integerinteger1=newInteger(12);Integerinteger2=newInteger(12);Integerinteger3=newInteger(127);Integera1=127;//或者写成Integera1=Integ......
  • 定时器
    System.Windows.Forms.Timertimer1=newSystem.Windows.Forms.Timer();System.Windows.Forms.Timertimer2=newSystem.Windows.Forms.Timer();SqlConnectionStringBuildersqlb01=newSqlConnectionStringBuilder();sqlb01.DataSource=strdata;sqlb01.......