做课题的网站有多少是备案的,科技型中小企业服务平台,网页首页管理系统,学做湘菜的视频网站最近在uniapp中遇到了一个定时器的功能#xff0c;需要每天定时00:00:00触发接口请求#xff0c;用到了timeOutTimer和intervalTimer#xff0c;结合实例来讲一下实现步骤#xff1a; 首先了解一下这两个方法的含义
setTimeout#xff1a;用于在一段时间后执行一次函数。…最近在uniapp中遇到了一个定时器的功能需要每天定时00:00:00触发接口请求用到了timeOutTimer和intervalTimer结合实例来讲一下实现步骤 首先了解一下这两个方法的含义
setTimeout用于在一段时间后执行一次函数。setInterval用于重复性地执行一个函数按照指定的时间间隔重复调用
具体实现方法如下 1.引入
import {onLoad,onShow,onUnload} from dcloudio/uni-app
// 时间转换插件
import moment from moment;2.定义变量
// 定时任务配置const config ref({time: 00:00:00, // 每天几点执行interval: 1, // 隔几天执行一次intervalTimer: ,timeOutTimer: })设置定时任务 onShow((options) {//定时任务setTimedTask();})// 设置定时任务function setTimedTask() {// 获取当前时间let endTime ${moment().format(YYYY-MM-DD)} ${config.value.time};// 获取今天定时执行的时间戳let end moment(endTime).unix()*1000;// 获取当前时间戳let start moment().unix()*1000;// 如果执行时间已经过了今天就让把执行时间设到明天的按时执行的时间if(end start){end 24 * 60 * 60 * 1000;}//获取距离多少时间戳后执行let downCount end - start;config.value.timeOutTimer setTimeout(() {setTimer();}, downCount);}// 设置定时器function setTimer() { console.log(进入定时器)// 这里是将在你设置的时间点执行你的业务函数webSocketAction()// 每隔多少天再执行一次这里设置的是24小时const intTime config.value.interval * 24 * 60 * 60 * 1000config.value.intervalTimer setInterval(() {webSocketAction();}, intTime);}function webSocketAction() {console.log(开始执行。。。。。。。);// 这里是要触发的任务// ......}4.离开页面时销毁定时器
// 离开页面时销毁定时器onUnload(() {// 清除任务定时器clearInterval(config.value.intervalTimer)// 清除定时器timeoutclearTimeout(config.value.timeOutTimer)})接下来就是见证成功的时刻啦祝我们天天开心、事事顺意~