setInterval实现定时停止

  const intervalIdRef = useRef(null); // 使用 useRef 创建一个可变的引用const [counter, setCounter] = useState(0);
const startTimer = ((appName) => {clearInterval(intervalIdRef.current); // 清除之前的定时任务const id = setInterval(() => {setCounter(prevCounter => {const updatedCounter = prevCounter + 1;console.log(updatedCounter);if (updatedCounter % 5 === 0) {//30分钟自动停止clearInterval(id); // 停止定时任务的执行}return updatedCounter;}); // 使用 callback 形式的 setCounter 来更新计数器console.log(id)console.log(appName)getData(appName); // 每隔一段时间调用一次接口获取数据}, 60 * 1000);intervalIdRef.current = id; // 将计时器ID保存到 useRef 的引用中})const search = () => {const fieldsValue = searchForm.getFieldsValue()if (fieldsValue.appName) {setFieldsValue(fieldsValue)clearInterval(intervalIdRef.current = id); // 清除之前的定时任务startTimer(fieldsValue.appName);getData(fieldsValue.appName);}}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部