var intervalHandles = [];
function instanceLoopTimer(url,instance, time, id) {
if (id in intervalHandles) {
clearInterval(intervalHandles[id]);
intervalHandles[id] = 0;
}
intervalHandles[id] = setInterval(function() {
myFuction();
}, time);
}
我创建了此函数,以便它可以循环自身,该函数在您第一次运行时完美运行,但是第二次我使用相同的值运行时,它似乎陷入了无限循环
我认为clearInterval不会被触发,所以当我重新运行同一实例时,它会进入循环中,有人可以帮我吗
最佳答案
您应该对var intervalHanldes = {}
使用和反对
使用数组时,不能将字符串用作索引。
如果将prop设置为0,in
运算符将找到它,因此最好使用delete
var intervalHandles = {}; // should be an object!
function instanceLoopTimer(url,instance, time, id) {
if (id in intervalHandles) {
clearInterval(intervalHandles[id]);
delete intervalHandles[id];
}
intervalHandles[id] = setInterval(myFuction, time);
}