tyoma_koder
@tyoma_koder

Как получить код svg файла в vue?

Пытался получить svg с помощью fetch, в консоль код выводится, но когда я пытаюсь его вставить в html получаю строку "[object Promise]", варианты типа getFileContent(url).then(a=>{return a}) тоже не работают
async getFileContent(url) {
      const response = await fetch(url, {});
      const json = await response.text();
      console.log(json)
      return json;
 }

Ставил пакет svg loader, но там проблемы с версиями (он использует устаревшие на сколько я понял)
  • Вопрос задан
  • 234 просмотра
Решения вопроса 1
Aetae
@Aetae Куратор тега Vue.js
Тлен
Тебе надо изучить, что такое асинхронность, что такое Promise, что такое async\await. Без этого ты никуда не уедешь.

Тебе надо делать либо так: this.svg = await getFileContent(url), либо так
getFileContent(url).then(a => this.svg = a).

Promise всегда возвращает Promise. Тебе надо дождаться выполнения Promise'а тем или иным способом.
Если ты делаешь так this.svg = getFileContent(url) - конечно у тебя в this.svg лежит Promise. Этот Promise только начинает выполнение и никаких данных там нет. Данные в него прилетят возможно через час, если ты на модеме.

К Vue вопрос отношение не имеет.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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