将 setInterval ID 解析为其参数函数
Parsing setInterval ID's to it's parameter function
我将执行大量的 setIntervals,有一种方法可以提高效率;但那是在路上。
我有办法做到这一点吗?
var a = setInterval(function(a){
console.log(a);
clearInterval(a);
}, 1000, a);
所以 ID 被解析到函数本身,这样我就不必存储 ID 来再次清除它了。
这里有两个选择。
递归设置超时:
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)
您可以编写一个辅助函数来执行此操作:
function interval(f, timeout) {
const id = setInterval(() => f(id), timeout);
}
interval(a => { console.log(a); clearInterval(a); }, 1000);
var a = [];
a.push(setInterval(function(t){
console.log(a[t]);
clearInterval(a[t]);
}, 1000, a.length));
不要那样做。
我将执行大量的 setIntervals,有一种方法可以提高效率;但那是在路上。
我有办法做到这一点吗?
var a = setInterval(function(a){
console.log(a);
clearInterval(a);
}, 1000, a);
所以 ID 被解析到函数本身,这样我就不必存储 ID 来再次清除它了。
这里有两个选择。
递归设置超时:
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)
您可以编写一个辅助函数来执行此操作:
function interval(f, timeout) {
const id = setInterval(() => f(id), timeout);
}
interval(a => { console.log(a); clearInterval(a); }, 1000);
var a = [];
a.push(setInterval(function(t){
console.log(a[t]);
clearInterval(a[t]);
}, 1000, a.length));
不要那样做。