Задать вопрос
@CreativeStory

Как исключить последовательность выполнения функций?

Как можно обойти последовательное выполнение функций?

Столкнулся с проблемой. В скрипте есть 2 функции, которые выполняются последовательно.
Но если первая функция false(не находит требуемых значений), то вторая не работает.
Нужно если первая не отрабатывает, то она не мешает второй запускаться..

Сами виновники:
resKolichestvoSpalen.forEach(function(item, i, resKolichestvoSpalen) {
    document.getElementById("kolichestvo-spalen-value-" + item).checked = true;
}); 

resKolichestvoEtazhey.forEach(function(item, i, resKolichestvoEtazhey) {
    document.getElementById("kolichestvo-etazhey-value-" + item).checked = true;
});
  • Вопрос задан
  • 50 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Академия Eduson
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
Решения вопроса 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
Видимо, вылетает ошибка, когда document.getElementById() на находит элемента с данным id – ведь вы тут же пытаетесь изменить свойство checked.

Варианта два:
  1. проверять, нашелся ли элемент и только тогда ставить checked;
  2. обернуть каждую функцию в try .. catch


Лучше первый вариант:
function setCheck(arr, prefix) {
  arr.forEach( item => {
    const el = document.getElementById(prefix + item);
    if (el && el.hasOwnProperty("checked")) el.checked = true;
  });
}

setCheck (resKolichestvoSpalen, "kolichestvo-spalen-value-");
setCheck (resKolichestvoEtazhey, "kolichestvo-etazhey-value-");
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы