/**
* 周期执行某个函数n次
* @param {*} fn 执行的函数
* @param {*} n 执行次数
* @param {*} ms 执行间隔
* @param {*} immediate 第一次是否立即执行
*/
function repeatFunc(fn, n, ms, immediate) {
let count = 0;
let context = null;
function inner(...args) {
count ++;
if (count > n) {
return;
}
if (count === 1 && immediate) {
fn.call(context, ...args);
inner.call(context, ...args);
return;
}
setTimeout(() => {
fn.call(context, ...args);
inner.call(context, ...args);
}, ms);
}
return inner;
}
网友评论