JavaScript定时器(setTimeout和setInterval)的用法技巧

news2024/12/23 10:58:57

1.满足特定条件时才执行后续步骤。

  • 核心代码:
    //初始化
    let isPass = false;

    //只有满足特定条件(在这里为:isPass为true时)时,才执行下一步操作
    let timeout = setInterval(() => {
      if (isPass) {
        //这里写要执行的后续方法
        //xxx
        console.log('isPass为true了,这里可以执行下一步操作啦');
        //清空定时器
        clearInterval(timeout);
      } else {
        console.log('isPass为false,不让走哦');
      }
    }, 500)

    //这里是人工转换,实际业务中一般由接口或者业务逻辑改变
    setTimeout(() => {
      isPass = true
    }, 3000)

  • 案例图片:

  • 场景解析:诸如Promise的情形,只有接口请求成功后才会执行下一步。有时候不方便使用Promise或者特定情形下,可以借助此定时器(setInterval)方法解决。

  • 友情提醒:业务处理完成后,一定要清空clearInterval)对应定时器。

2.实现“节流操作”。

  • 核心代码:
    //初始化参照值
    let isPass = false;

    var btn = document.querySelectorAll('.btn')[0]
    btn.onclick = function () {
      //不满足条件直接return掉
      if (isPass) {
        console.log('小gege不要心急哦,请稍后再试嘛~');
        return false;
      }
      //这里写要执行的下一步方法
      //xxx
      console.log('已经点击执行了');
      //下一步方法xxx执行后改变参照值状态
      isPass = true;
      //每3s才能点击执行一次
      setTimeout(() => {
        isPass = false
      }, 3000)
    }
  • 案例图片:

  • 场景解析:需要使用“节流”的业务场景,可借助次定时器setTimeout)的方法解决。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/745492.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Kubernetes 入门篇上

❖ Kubernetes核心概念 ❖ 快速部署一个Kubernetes集群 ❖ Kubernetes将弃用Docker! ❖ kubectl管理工具 ❖ Kubernetes基本资源概念 ❖ 资源编排(YAML) ❖ 深入理解Pod对象:基本管理 ❖ 深入理解Pod对象:调度 …

Chapter 6: Loops and Iterations | Python for Everybody 讲义笔记_En

文章目录 Python for Everybody课程简介Loops and IterationsUpdating variablesThe while statementInfinite loopsFinishing iterations with continueDefinite loops using forLoop patternsCounting and summing loopsMaximum and minimum loopsDebuggingGlossary Python f…

Chapter 7: Strings | Python for Everybody 讲义笔记_En

文章目录 Python for Everybody课程简介StringsA string is a sequenceGetting the length of a string using lenTraversal through a string with a loopString slicesStrings are immutableLooping and countingThe in operatorString comparisonString methodsParsing stri…

x86平台实时Windows机器视觉EtherCAT运动控制器VPLC711

一、市场背景 简单易用,功能强大,正运动技术持续专注智能制造核心控制器的产品与平台的突破! 随着智能制造的兴起,制造型企业正面临着日益激烈的市场竞争和对生产效率与产品品质提升的迫切需求,以满足市场的要求。同…

详解自定义类型:结构体,枚举,联合

目录 结构体 结构体基础知识 结构的自引用 结构体内存对齐 结构体大小计算 存在内存对齐的原因 设计结构体时的技巧 修改默认对齐数 结构体实现位段(位段的填充&可移植性) 什么是位段 位段的内存分配 位段的跨平台问题 位段的应用 枚…

做数据库内核开发的人员很少吗?

是的,相对于其他领域的软件开发,数据库内核开发人员的数量确实相对较少。这是因为数据库内核开发是一项高度专业化和复杂的任务,需要深入理解数据库系统的原理、算法和底层技术。 我这里刚好有嵌入式、单片机、plc的资料需要可以私我或在评论…

和鲸数据科学专家平台正式成立,凝聚专家资源推进产业数字化升级

2015年,大数据与人工智能从技术到公众认知均迎来重大突破,全国首批“数据科学与大数据技术”专业获批 同年,和鲸科技的前身科赛网 Kesci 正式成立,从数据竞赛社区出发为“数据人”提供实践与成长的平台。 2023年,数据…

sql语句汇总

最近项目中接触到了mySql,把经常用到的MySql语句记录下来,方便以后随时查阅。 1.密码加密 表结构如下 INSERT INTO tbl_userinfo ( vc_accname,vc_username,vc_pwd,vc_phone,i_role_id,dt_creatTime) VALUES (%s,%s,AES_ENCRYPT((%s), Wang),%s,%d,NOW())该表主…

Shiro教程(二):Springboot整合Shiro全网最全教程

Shiro教程(二):Springboot整合Shiro全网最全教程 1、SpringBoot整合Shiro环境搭建 新建Module 新建springboot项目 选择一个依赖就行,因为这里idea版本的问题,SpringBoot的版本最低就是2.7.13。可以等项目创建成功之后…

无需下载任何软件!BurpSuite如何抓取iphone数据包

一、手机电脑处于同一个网段下 此处我的手机和电脑都处在X.X.1.X网段下 二、BurpSuite设置 添加代理 手机端配置代理 配置完点击存储 三、手机导入证书文件 手机端在Safari浏览器输入【电脑端ip:8080】 允许 在设置里打开 “已下载描述文件” 选择安装(因为我已…

第五课:Figma 玻璃拟态页设计

效果展示 通过背景模糊实现玻璃拟态效果 选择合适的背景,绘制形状,给形状添加 Effects,点击下方的下拉选择框,选择 background blur;添加后会发现,画面无任何改变,调整 Fill 后面的百分比&…

【JavaEE进阶】使用注解存储对象

使用注解存储对象 之前我们存储Bean时,需要在spring-config 中添加一行 bean注册内容才行,如下图所示: 问题引入:如果想在Spring 中能够更简单的进行对象的存储和读取,该怎么办呢? 问题解答:实…

【c++】std::move 所有权转移的使用

1. std::move用法详细梳理 ref_frames_ std::move(ref_frames);cur_frames_ cur_frames;使用std::move函数的好处是可以将资源的所有权从一个对象转移到另一个对象,而不需要进行深拷贝操作。对于智能指针类型的变量,使用std::move也是可以的&#xff0…

K8s(kubernetes)集群搭建及dashboard安装、基础应用部署

基础介绍 概念 本质是一组服务器集群,在集群每个节点上运行特定的程序,来对节点中的容器进行管理。实现资源管理的自动化。 功能 自我修复弹性伸缩服务发现负载均衡版本回退存储编排 组件 控制节点(master)-控制平面 APIserver:资源操作…

VMware ESXi 7.0 Update 3n - 领先的裸机 Hypervisor

VMware ESXi 7.0 Update 3n - 领先的裸机 Hypervisor VMware ESXi 7.0 Update 3n Standard & All Custom Image for ESXi 7.0 U3m Install CD 更新日期:Fri Jul 07 2023 10:50:00 GMT0800,阅读量: 4518 请访问原文链接:https://sysin.…

全网最细,Web自动化测试-数据驱动实战,直接通关...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 在Web自动化测试中…

智能照明控制系统在民用照明节能中的应用

摘 要 :通过智能照明控制系统在某宾馆电气工程中的应用实例,从照明控制的系统结构、设计及系统软件等方面,介绍了智能照明控制系统的功能及实现方式。探讨了智能照明控制系统在民用建筑中的适用范围和发展前景,并由此进一步推断智…

运维小知识(二)——Linux大容量磁盘分区及挂载

centos系统安装:链接 目录 1.🍓🍓命令格式化磁盘 2.🍓🍓大容量硬盘分区 3.🍓🍓自动挂载 整理不易,欢迎一键三连!!! 新系统装完之后&#xff0…

基于appium的常用元素定位方法

目录 一、元素定位工具 1.uiautomatorviewer.bat 2.appium检查器 二、常用元素定位方法 1.id定位 2.class_name定位 3.accessibility_id定位 4.android_uiautomator定位 5.xpath定位 三、组合定位 四、父子定位 五、兄弟定位 一、元素定位工具 app应用的元素使用的是控…

前端实战(四):Nginx代理

Nginx的用处 Nginx的作用主要体现在作为 Web 服务器、负载均衡服务器、邮件代理服务器等方面,其特点是占有内存少,并发能力强,给使用者带来了很多的便利。Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3&…