Задать вопрос
Ответы пользователя по тегу JavaScript
  • Какие сетевые ошибки не попадают в catch?

    BenderIsGreat34
    @BenderIsGreat34 Автор вопроса
    junior front-end
    Стоит axios, он прокидывает ошибки в кэтч
    Ответ написан
    Комментировать
  • Не может найти файл, алиасы с typescript React?

    BenderIsGreat34
    @BenderIsGreat34 Автор вопроса
    junior front-end
    проблема решена, везде добавил /*
    "Components/*": ["components/*"],
          "Modals/*": ["components/modals/*"],
          "Panels/*": ["components/panels/*"],
          "Services/*": ["services/*"],
          "Actions/*": ["actions/*"],
          "Reducers/*": ["reducers/*"],
          "Widgets/*": ["widgets/*"],
          "Assets/*": ["assets/*"],
          "Containers/*": ["containers/*"],
          "Config/*": ["config/*"]
    Ответ написан
    Комментировать
  • Почему код выполняется асинхронно в конструкции async/await?

    BenderIsGreat34
    @BenderIsGreat34 Автор вопроса
    junior front-end
    Отвечу за тех токсиков, что понабежали в комментарии.
    Проблема была в том, что метод мап запускаеся и код выполняется дальше.
    Чтобы это исправить я делаю обработку цикла параллельно при помощи Promise.all(), куда передаю необходимые промисы. За наводку спасибо @notiv-nt
    export const getDataMovie = (filmName) => {
      const movieData = [];
      async function getData(film) {
        let resp = await fetch(`http://www.omdbapi.com/?t=${film}&apikey=...`);
        resp = await resp.json();
        const title = await resp.Title;
        const year = await resp.Year;
        const genre = await resp.Genre;
        movieData.push({ title, year, genre });
      }
      return async (dispatch) => {
        // делаем проверку на массив, потому что в компоненте favorite
        // мы передаем массив названий фильмов
        if (Array.isArray(filmName)) {
          const result = filmName.map((item) => getData(item));
          console.log(result);
    
          await Promise.all(result);
          dispatch(getFavoriteMovie(movieData));
        } else {
          getData(filmName);
          dispatch(getFavoriteMovie(movieData));
        }
      };
    };
    Ответ написан
    1 комментарий
  • Как можно улучшить получение списка из локалстора?

    BenderIsGreat34
    @BenderIsGreat34 Автор вопроса
    junior front-end
    const inputHobbies = document.querySelector(".page-info-wrap__hobbies-input");
    const btnAddHobbies = document.querySelector(".page-info-wrap__add-hobbies");
    const ul = document.querySelector(".page-info-wrap__hobbies-list");
    
    let listValues = [];
    
    if (localStorage.getItem("myHobbies")) {
        listValues = JSON.parse(localStorage.getItem("myHobbies"));
    }
    for (let i = 0; i <= listValues.length-1; i++) {
        let newLi = document.createElement('li');
        ul.appendChild(newLi);
        newLi.textContent = listValues[i];
    }
    
    
    btnAddHobbies.addEventListener("click", () => {
            let newLi = document.createElement('li');
            const input = inputHobbies.value;
            if (input) {
                // убрать манипулирование стилями
                newLi.textContent = input;
                ul.appendChild(newLi);
                // добавляю значения в массив, чтобы потом кинуть в локалстор
                listValues.push(newLi.textContent);
                inputHobbies.value = "";
                localStorage.setItem("myHobbies", JSON.stringify(listValues));
                if (listValues.length >= 5) {
                    btnAddHobbies.setAttribute('disabled', 'disabled');
                }
            }
    });
    
    ul.addEventListener('click', function(event) {
        const target = event.target;
        if (target.tagName === "LI") {
            target.remove();
            listValues.pop(target);
            localStorage.setItem("myHobbies", JSON.stringify(listValues));
        }
    });
    Ответ написан
    Комментировать
  • Ошибка при запуске gulp.watch "SyntaxError: Identifier 'watch' has already been declared" как исправить?

    BenderIsGreat34
    @BenderIsGreat34
    junior front-end
    я думаю, проблема заключается в том, то функция watch есть, а таска нету.
    мой код
    gulp.task('watch', function() {
      gulp.watch('src/sass/*.scss', gulp.series('sass'));
    });
    Ответ написан