项目场景:两个函数互相调用时
(当一个系统比较大时,尤其是涉及到一些复杂的算法时,很有可能会碰到死循环的情况发生,造成系统的CPU飙升)
function a1() {
console.log("a1");
b1();
}
function b1() {
console.log("b1");
a1();
}
问题描述:会进入死循环
原因分析:
就类似for循环,或者递归函数如果没有退出条件就会一直执行
解决方案:
let flagNum = 1;
function a1() {
flagNum--;
console.log("a1");
if (flagNum === 0) {
b1();
} else {
flagNum = 1;
}
}
function b1() {
flagNum--;
console.log("b1");
if (flagNum === 0) {
a1();
} else {
flagNum = 1;
}
}