清除所有 运行 间隔
Clear all running intervals
我正在尝试使用相同的 ID 同时清除所有间隔。
这样做的原因是多个代理可以向他们发起呼叫,因此它可以相应地工作,但是当涉及多个 agent/interval 时,间隔不会被清除,据我所知,clearInterval 只会清除最后一个间隔。
是否可以用同一个ID同时清除所有Intervals?或者只是清除所有间隔?
我查看了关于同一主题的其他问题,但对我没有用,想知道是否有处理此问题的最新方法。
基本代码思路:
var extenArray = [];
//Passport.js
app.get('/index', checkLoggedIn, function (req, res) {
res.render('index', {
isAuthenticated : req.isAuthenticated(),
user : req.user
});
if(extenArray.length > 0){
intervalId = setInterval(bridgeCall, 10000);
console.log("Running");
}
});
function bridgeCall() {
if (extenArray.length > 0) {
console.log("Begin!")
console.log("value removed from array");
} else {
error = ("No extensions left to dial");
Error();
if(extenArray.length < 1){
clearInterval(intervalId);
console.log("Cleared Interval")
}
}
}
每次调用扩展时,它都会从数组中删除,但我想尽可能保留代码示例,但如果需要可以充实它。
有没有办法同时清除所有相同ID的区间?
感谢@JaromandaX 的建议,我配置了我的代码,它根据将所有间隔 ID 保存在一个数组中的建议工作。
对给定的代码示例进行了修改:
var extenArray = [];
var interVal = [];
//Passport.js
app.get('/index', checkLoggedIn, function (req, res) {
res.render('index', {
isAuthenticated : req.isAuthenticated(),
user : req.user
});
if (extenArray.length > 0) {
intervalId = setInterval(bridgeCall, 10000);
interValArray.push(intervalId);
console.log("Running");
}
});
function bridgeCall() {
if (extenArray.length > 0) {
console.log("Begin!")
console.log("value removed from array");
} else {
error = ("No extensions left to dial");
Error();
if (extenArray.length < 1) {
for (i = 0; i < interValArray.length; i++) {
clearInterval(interValArray[i]);
console.log("Cleared Interval")
}
}
}
}
我正在尝试使用相同的 ID 同时清除所有间隔。
这样做的原因是多个代理可以向他们发起呼叫,因此它可以相应地工作,但是当涉及多个 agent/interval 时,间隔不会被清除,据我所知,clearInterval 只会清除最后一个间隔。
是否可以用同一个ID同时清除所有Intervals?或者只是清除所有间隔?
我查看了关于同一主题的其他问题,但对我没有用,想知道是否有处理此问题的最新方法。
基本代码思路:
var extenArray = [];
//Passport.js
app.get('/index', checkLoggedIn, function (req, res) {
res.render('index', {
isAuthenticated : req.isAuthenticated(),
user : req.user
});
if(extenArray.length > 0){
intervalId = setInterval(bridgeCall, 10000);
console.log("Running");
}
});
function bridgeCall() {
if (extenArray.length > 0) {
console.log("Begin!")
console.log("value removed from array");
} else {
error = ("No extensions left to dial");
Error();
if(extenArray.length < 1){
clearInterval(intervalId);
console.log("Cleared Interval")
}
}
}
每次调用扩展时,它都会从数组中删除,但我想尽可能保留代码示例,但如果需要可以充实它。
有没有办法同时清除所有相同ID的区间?
感谢@JaromandaX 的建议,我配置了我的代码,它根据将所有间隔 ID 保存在一个数组中的建议工作。
对给定的代码示例进行了修改:
var extenArray = [];
var interVal = [];
//Passport.js
app.get('/index', checkLoggedIn, function (req, res) {
res.render('index', {
isAuthenticated : req.isAuthenticated(),
user : req.user
});
if (extenArray.length > 0) {
intervalId = setInterval(bridgeCall, 10000);
interValArray.push(intervalId);
console.log("Running");
}
});
function bridgeCall() {
if (extenArray.length > 0) {
console.log("Begin!")
console.log("value removed from array");
} else {
error = ("No extensions left to dial");
Error();
if (extenArray.length < 1) {
for (i = 0; i < interValArray.length; i++) {
clearInterval(interValArray[i]);
console.log("Cleared Interval")
}
}
}
}