封装代码

在项目根目录项新建 utils 文件夹;再新建一个 idea.js 文件;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import store from "./store.js"

module.exports = {
// 计算剩余时间
timeRemaining(val,time) {
return new Promise((resolve, reject) => {
let newTime = new Date().getTime();
let oldTime = store.getItem(val);
if (oldTime) {
if (newTime > oldTime + time*1000) {
resolve(0);
} else {
let downtime = Math.ceil(time + (oldTime - newTime) / 1000);
resolve(downtime);
}
} else {
store.setItem(val, newTime);
resolve(time)
}
})
}
}

1. 引入缓存

1
import store from "./store.js"

如何封装本地缓存点击:uniapp 封装store本地缓存 或者引入项目已有的插件。

2. 变量认识

变量(参数) 类型 说明
val String 将要被缓存的 键名
time Number 总倒计时长
newTime Date()、Number 当前时间戳
oldTime Date()、Number 缓存的时间戳
downtime Number 剩余倒计时长

3. 调用函数

第一次调用将会缓存时间戳,返回自己设定的倒计时;第二次调用将会获得设定倒计时的剩余时间。

1
2
3
4
5
import fn from "../utils/idea.js"

fn.timeTemaining("startTime",180).then(res=>{
console.log(res); // 剩余时间
})