在 js?中,強(qiáng)制中斷死循環(huán),可以通過 break ,打斷死循環(huán);
但是要封裝成一個(gè)函數(shù),調(diào)用,執(zhí)行,就有點(diǎn)麻煩。
可以適當(dāng)換個(gè)方法來,嘗試。我們可以通過閉包來存儲(chǔ)執(zhí)行函數(shù)的次數(shù),規(guī)定超過多少次則認(rèn)定為死循環(huán),拋出異常。
function?circle(){
? ? let idx = 0;
? ? return function(){
? ? ? ? idx++;
? ? ? ? if(idx>1000){
? ? ? ? ? ? idx=0;
? ? ? ? ? ? throw new Error('強(qiáng)制熔斷');
? ? ? ? }
? ? }
}
let bad_circle = circle();
while(1){
? ? bad_circle?(); //Uncaught Error: 強(qiáng)制熔斷
}
這樣子的?話,我們可以在防止某些函數(shù)過多調(diào)用導(dǎo)致頁面卡頓的情況下,調(diào)用改函數(shù),進(jìn)行熔斷機(jī)制處理