在 js 中,强制中断死循环,可以通过 break ,打断死循环;
但是要封装成一个函数,调用,执行,就有点麻烦。
可以适当换个方法来,尝试。我们可以通过闭包来存储执行函数的次数,规定超过多少次则认定为死循环,抛出异常。
function circle(){
let idx = 0;
return function(){
idx++;
if(idx>1000){
idx=0;
throw new Error('强制熔断');
}
}
}
let bad_circle = circle();
while(1){
bad_circle (); //Uncaught Error: 强制熔断
}
这样子的 话,我们可以在防止某些函数过多调用导致页面卡顿的情况下,调用改函数,进行熔断机制处理