具有特定ID号的setInterval

时间:2014-07-04 07:55:29

标签: javascript setinterval

出于我之外的原因,我正在寻找一种方法来创建具有特定ID的setInterval。

例如:

创建setInterval并将其分配给变量时:

var myInterval = setInterval(function(){..},100);

myInterval实际上等于数字。

所以当你清除间隔时,你可以去 clearInterval(myInterval),或者使用它等于的数字。

myIntertval === 9;
clearInterval(9);

如何制作myInterval === 20.从而为我的setInterval提供20的ID。

甚至可能吗?或者我只是愚蠢而且应该以正确的方式做所有事情。

2 个答案:

答案 0 :(得分:2)

'setInterval'返回的id是唯一的,因此不需要另一个唯一标识符。在Theory中,您可以创建一个映射,它将您想要的id映射到setInterval返回的id,并将此id用于您的内部代码。但是,在您希望清除间隔的位置,您必须使用原始间隔。我会对有用的用例感兴趣。

答案 1 :(得分:2)

  

甚至可能吗?或者我只是愚蠢而且应该以正确的方式做所有事情。

你应该以正确的方式做到这一点(拥抱重构!)。说这个,你可以通过"映射"来解决它。任何ID到另一个值,只需将其存储在一个对象中:

var myIntervals={};
myIntervals[0]=setInterval(function(){..},100);
myIntervals[20]=setInterval(function(){..},100);
myIntervals["hello"]=setInterval(function(){..},100);

然后你会存储类似的东西:

{ 0: <ID_first interval>,
  20: <ID_another_interval>,
  hello: <<ID_another_interval_more>
}

然后你可以这样做:

clearInterval(myIntervals[requiredId]);