Javascript 如何在控制台中终止无限循环(`setInterval`)?
例如,我们可以跑步Javascript 如何在控制台中终止无限循环(`setInterval`)?,javascript,firefox,console,Javascript,Firefox,Console,例如,我们可以跑步 setInterval(function(){console.log(“Hello,SO!”)},2000)据我所知,这是你最好的选择 var interval = setInterval(() => console.log("hello, world"), 2000); clearInterval(interval); 您可以使用所述的“暂停”按钮停止当前页面上的脚本执行。但这将暂停页面上的所有JS,而不仅仅是您的间隔。要终止间隔,您需要将它们的句柄传递到clea
setInterval(function(){console.log(“Hello,SO!”)},2000)代码>据我所知,这是你最好的选择
var interval = setInterval(() => console.log("hello, world"), 2000);
clearInterval(interval);
您可以使用所述的“暂停”按钮停止当前页面上的脚本执行。但这将暂停页面上的所有JS,而不仅仅是您的间隔。要终止间隔,您需要将它们的句柄传递到clearInterval()
。在您的图像中,执行setInterval()
后,您可以看到句柄返回到控制台,显示为4491
。这样,你就可以这样杀死它:
clearInterval(4491);
或者(更好的是),您应该将该句柄return分配给变量,以便以编程方式终止它:
let interval = setInterval(() => console.log('Hello, SO!'), 2000);
clearInterval(interval);
编辑:
你也可以使用暴力。句柄是一个int64
数字,因此它可能是一个巨大的数字,但对于几乎任何应用程序来说,它都会很小,因为句柄是递增的。请注意,此方法可能会破坏依赖间隔的其他包
for (var i = 1; i < 9999; i++) clearInterval(i);
for(var i=1;i<9999;i++)clearInterval(i);
如果您没有对间隔的引用,您最好点击F5
刷新页面,或者清除每个可能的间隔(因为浏览器给了它们数字ID):for(var i=1;i<99999;i++)clearInterval(i)
。或者只使用您在控制台中看到的ID:clearInterval(4491)
@blex在哪里记录了句柄?我检查了mdn,它看起来像是一个int32
,但我在句柄本身上找不到文档。在HTML标准规范中,它们只将其称为一个。在specs实现中,他们使用了@blex,谢谢。因此,这可能是一个非常大的数字,但可能不会,因为它们是递增的。