我将执行很多setIntervals,有一种方法可以提高它的效率;但那是在路上。
我有办法做到这一点吗?
var a = setInterval(function(a){
console.log(a);
clearInterval(a);
}, 1000, a);
因此ID被解析为函数本身,这样我就不必存储ID来再次清除它。
答案 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));
不要那样做。