Чтобы остановить выполнение функции, используйте return
. break
имеет смысл только в контексте for
или while
l oop.
Но другая проблема заключается в том, что у вашего validationTest
нет постоянного вид переменной count
- она полностью локальная, поэтому тест все равно не будет работать. Попробуйте вместо этого передать параметр, который укажет, является ли текущий вызов рекурсивным или нет:
validationTest(lastTry = false) {
this.isAnyRangeInvalid = false;
this.monthpicker.forEach(picker => {
if (picker.isValidRange === false) {
this.isAnyRangeInvalid = true;
}
});
if (!lastTry) this.validationTest(true);
}
Убедитесь, что начальный вызов validationTest
не передает параметр или передает false
.
Для более общего решения, ограничивающего себя N рекурсивными попытками, вместо этого можно указать число, например:
validationTest(triesLeft = 3) {
this.isAnyRangeInvalid = false;
this.monthpicker.forEach(picker => {
if (picker.isValidRange === false) {
this.isAnyRangeInvalid = true;
}
});
if (triesLeft !== 0) this.validationTest(triesLeft - 1);
}