前言:有点类似秒杀抢购那种东西吧,这个,不过这是前端的处理,到时间开放某个页面、某个按钮之类的

  • 做开发的时候,有些业务需要多次重复触发一个函数,并以时间为判断标准,或是单次触发函数,在特定的时间点的时候。
  • 多次触发就用setInverval来实现
  • 单次触发可以通过setTimeout,或者直接调用

实现方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
(function () {
// 一秒内多次触发
const timeMask = setInverval(() => {
let value = "2023-02-05 23:59:59"; // 要触发函数的特定时间
let data = new Date();
let now = data.valueOf(); // 当前时间
let time = new Date(value).valueOf(); // 特定时间转化
// console.log("now:" , now)
// console.log("value" , time)
// 如果当前时间大于特定时间
if(now > time){
// 取消多次触发循环的定时操作
clearInterval(timeMask)
console.log("超过了特定时间了,触发相关方法")
}else {
console.log("还没超过特定时间")
}
}, 1000);
// 触发
timeMask
})();
  • 单次触发可以把setInverval改为setTimeout,并且把clearInterval(timeMask)注释掉