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);
}

07-26 04:33