场景如下:
控制函数每隔一定时间执行依次,能设置最大次数,当满足一定条件后,停止执行。
// 需要借助两个函数实现,num是做大的执行和次数
async repeatSend(fn, num) {
for (let i = 0; i < num; i++) {
// 判断条件是否满足,当满足条件时可停止下来
// 注意这里一定要使用await,使用await之后等上一个函数执行完毕下一个函数才能执行
if(满足条件){
let result = await fn();
}
else{
break;
}
}
},
// 真正执行实际操作的函数
exection() {
return new Promise((resolve, reject) => {
setTimeout(() => {
// 在这里也可以做一些异步请求,具体看情况
console.log("我执行了")
resolve(true);
}, 2000)
})
}
使用方法:
this.repeatSend(this.exection,3);