setTimeOut定时器实现数组内容循环获取
功能需求,一组数据,不断重复循环播放
实现方式 setTimeout
注意功能,页面跳转后删除定时器
效果
页面关闭比如在vue的 beforeDestroy生命周期 调用 clearTimeout(t) 关闭定时器
代码如下
let t
const data = [1, 1, 1, 1, 1, 1]
function settime (resolve) {
if (t) {
clearTimeout(t)
}
t = setTimeout(resolve, 1000)
}
function timeout () {
return new Promise(resolve => {
settime(resolve)
})
}
// 启动循环
(async function circling () {
for (var i = 0; i < data.length; i++) {
// 处理其他逻辑
console.log('当前内容', i)
await timeout()
if (i === data.length - 1) {
// 无限循环
i = -1
}
}
})()