出于我之外的原因,我正在寻找一种方法来创建具有特定ID的setInterval。
例如:
创建setInterval并将其分配给变量时:
var myInterval = setInterval(function(){..},100);
myInterval实际上等于数字。
所以当你清除间隔时,你可以去 clearInterval(myInterval),或者使用它等于的数字。
myIntertval === 9;
clearInterval(9);
如何制作myInterval === 20.从而为我的setInterval提供20的ID。
甚至可能吗?或者我只是愚蠢而且应该以正确的方式做所有事情。
答案 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]);