uniapp&&微信小程序 —倒计时【setTimeout】封装
可以单独封装一个js里后调用 也可以直接当前文件编写(我这个是直接写到当前页面了)
调用方式:this.addTimeout(() => {},1000)
data() {
return {
timeouts: [],
},
},
onHide() {
this.clearAllTimeouts();
},
methods: {
// 添加setTimeout
addTimeout(fn, time) {
let id = setTimeout(() => {
fn();
this.removeTimeout(id);
}, time);
this.timeouts.push(id);
},
// 清除setTimeout
removeTimeout(id) {
let index = this.timeouts.indexOf(id);
if (index >= 0) {
clearTimeout(id);
this.timeouts.splice(index, 1);
}
},
// 清除所有setTimeout
clearAllTimeouts() {
for (let id of this.timeouts) {
clearTimeout(id);
}
this.timeouts = [];
},
}