封装代码
在项目根目录项新建 utils 文件夹;再新建一个 idea.js 文件;
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. 引入缓存
import store from "./store.js"
如何封装本地缓存点击:uniapp 封装store本地缓存 或者引入项目已有的插件。
2. 变量认识
变量(参数) | 类型 | 说明 |
---|---|---|
val | String | 将要被缓存的 键名 |
time | Number | 总倒计时长 |
newTime | Date()、Number | 当前时间戳 |
oldTime | Date()、Number | 缓存的时间戳 |
downtime | Number | 剩余倒计时长 |
3. 调用函数
第一次调用将会缓存时间戳,返回自己设定的倒计时;第二次调用将会获得设定倒计时的剩余时间。
import fn from "../utils/idea.js"
fn.timeRemaining("startTime",180).then(res=>{
console.log(res); // 剩余时间
})
有疑惑的小伙伴,可能是我表达不清楚,可以留言讨论,如有错误,也希望大家不吝指出。