调用clearInterval(), 定时器仍在进行

news/2025/3/31 23:46:24/

背景

我是在 react 的函数组件中遇到这个问题的,

出现问题的代码片段:

const SelfDevProgress = (props)=> {const [getChangePer,setGetChangePer] = useState(percent)let timer = null; // 定时器// 调起进度条const initial = () => {// 进度条步数let per = 0setGetChangePer(per)timer = setInterval(() => {          per += sif(per === 99) { // 在100之前要卡住停顿clearInterval(timer)}if(per + s >= 100) { // 最后一段改变步幅s = 1}setGetChangePer(per)}, 100);}// 响应失败const fail = () => {// 清除定时器clearInterval(timer) // 这里调用clearInterval了,但是定时器仍在运行}}

在 fail() 函数中调用 clearInterval 来清除定时器了, 但是发现定时器还在运行.

解决办法

把 timer 改成 useState 那种方式就可以了.

    const [timer,setTimer] = useState(null) // 定时器// 调起进度条const initial = async () => {// 进度条步数let per = 0setGetChangePer(per)let t = setInterval(() => {          per += sif(per === 99) { // 在100之前要卡住停顿clearInterval(t)}if(per + s >= 100) { // 最后一段改变步幅s = 1}setGetChangePer(per)}, 100);setTimer(t)}

http://www.ppmy.cn/news/1179928.html

相关文章

【网络安全 --- 任意文件下载漏洞(1)】任意文件下载漏洞

一,环境,工具准备 1-1 VMVare 16 虚拟机及下载安装(资源) 请参考以下博客安装(特详细):【网络安全 --- 工具安装】VMware 16.0 详细安装过程(提供资源)-CSDN博客【网络安…

贪心算法学习——加油站

目录 一,题目 二,题目接口 三,解题思路及其代码 一,题目 在一条环路上有 n 个加油站,其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i1 个加油站需要消耗汽油…

Docker 搭建 LNMP + Wordpress

[TOC](Docker 搭建 LNMP Wordpress 一、项目介绍1.1、项目环境1.2、 服务器环境1.3、 任务需求 二、部署Nginx2.1、建立工作目录2.2、 编写 Dockerfile 脚本2.3、准备 nginx.conf 配置文件2.4、生成镜像2.5、创建自定义网络 三、部署Mysql3.1、建立工作目录3.2、编写 Dockerfi…

浅谈安科瑞可编程电测仪表在老挝某项目的应用

摘要:本文介绍了安科瑞多功能电能表在老挝某项目的应用。AMC系列交流多功能仪表是一款专门为电力系统、工矿企业、公用事业和智能建筑用于电力监控而设计的智能电表。 Abstract:This article introduces the application of the multi-function energy …

【网络】想学TCP,这一篇就够了 —— TCP理论知识详解(基于前面手搓TCP服务端博客的补充)

TCP理论 前言正式开始TCP报文如何进行分离和封装TCP如何将有效载荷交付给上层如何理解TCP的可靠性TCP报头中的序号和确认序号(简单过一下,后面还会详细讲)只要序号不要确认序号行不行乱序问题 16位窗口大小TCP的全双工通信方式16位窗口大小的…

mysql 字符串分隔符通过循环获取数据

//定义字符串 DECLARE v_userids VARCHAR(10000) DEFAULT 111#222#333#444; //解析后存放在此 DECLARE v_mailarray VARCHAR(10000) DEFAULT ; IF Length(v_userids) > 0 THEN A:WHILE i < Length(v_userids) - Length(REPLACE(v_userids, #, )) 1 do …

【axios】axios的基本使用

一、 Axios简介 1、 Axios是什么&#xff1f; Axios是一个基于promise的HTTP库&#xff0c;类似于jQuery的ajax&#xff0c;用于http请求。可以应用于浏览器端和node.js&#xff0c;既可以用于客户端&#xff0c;也可以用于node.js编写的服务端。 2.、Axios特性 支持Promis…

关于高并发你必须知道的几个概念

&#x1f388;个人公众号:&#x1f388; :✨✨✨ 可为编程✨ &#x1f35f;&#x1f35f; &#x1f511;个人信条:&#x1f511; 为与不为皆为可为&#x1f335; &#x1f349;本篇简介:&#x1f349; 本篇记录高并发必须知道的几个概念&#xff0c;如有出入还望指正。 关注公众…