解析setInterval ID到它的参数函数

时间:2016-08-19 20:36:04

标签: javascript node.js ecmascript-6 setinterval

我将执行很多setIntervals,有一种方法可以提高它的效率;但那是在路上。

我有办法做到这一点吗?

var a = setInterval(function(a){
    console.log(a);
    clearInterval(a);
}, 1000, a);

因此ID被解析为函数本身,这样我就不必存储ID来再次清除它。

3 个答案:

答案 0 :(得分:2)

您可以编写一个辅助函数来执行此操作:

function interval(f, timeout) {
  const id = setInterval(() => f(id), timeout);
}

interval(a => { console.log(a); clearInterval(a); }, 1000);

答案 1 :(得分:1)

这里有两个选择。

递归setTimeout:

function doTheJob() {
  console.log("I'm working")
  setTimeout(doTheJob, 1000)
}

将变量(id)保留在范围内的简单setinterval:

var id = setInterval(function() {
  console.log("I'm working")

  if( something ) 
    clearInterval(id)   
}, 1000)

答案 2 :(得分:0)

var a = [];
a.push(setInterval(function(t){
    console.log(a[t]);
    clearInterval(a[t]);
}, 1000, a.length));

不要那样做。