每隔wait秒执行函数,一共执行times次

2019-05-31  本文已影响0人  peerben

实现一个函数,每隔wait秒执行函数,一共执行times次。

给出两种实现

export {}

function executeEveryTime(wait: number, times: number, fn: Function) {
  if (times === 0) return;

  setTimeout(() => {
    fn.call(null);
    
    executeEveryTime(wait, times-1, fn);
  }, wait);
}

const delay = (wait) => {
  return new Promise((resolve, reject) => {
    setTimeout(resolve, wait);
  })
}

async function executeEvery(wait: number, times: number, fn: Function) {

  while (times > 0) {

    await delay(wait);
    fn.call(null);

    times -= 1;
  }

}

const log = () => console.log('hello world');

//executeEveryTime(1000, 3, log);
executeEvery(1000, 4, log);
Screen Shot 2019-05-31 at 7.26.45 AM.png
上一篇 下一篇

猜你喜欢

热点阅读