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

Как асинхронно передать данные с XMLHttpRequest?

Как передать значение c XMLHttpRequest запроса в переменную класса this.VideoUrl при асинхронности ?

class Test{
  constructor() {
    this.VideoUrl = "";
    this.url = "https"
  }
  getUrl(){
    let xhr = new XMLHttpRequest();

    xhr.open("GET", this.url, true);

    xhr.send();

    let transfer =(x)=>{
      this.urlToVideo = x;
    }

    function handler() {
      let VideoUrl = this.responseXML
      transfer(VideoUrl);
    }
    
    
    xhr.onload = handler;

  }
  log(){
    console.log(this.urlToVideo)
  }
}
  • Вопрос задан
  • 91 просмотр
Подписаться 1 Простой 5 комментариев
Помогут разобраться в теме Все курсы
  • Skillbox
    JavaScript
    3 месяца
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик расширенный
    13 месяцев
    Далее
  • Академия Eduson
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
Решения вопроса 1
Kozack
@Kozack Куратор тега JavaScript
Thinking about a11y
Quintis, Вот, чисто наугад, вы пытаетесь сделать что-то такое?
test.getUrl()
test.log()

Если да, то это не будет работать. Потому, что порядок выполнения следующий:
  1. Вызов getUrl
  2. Начало отправка запроса
  3. Назначение обработчика onload
  4. Вызов log
  5. Ожидание ...
  6. Возврат ответа от сервера
  7. Вызов transfer


Вам нужен механизм, чтобы вызывать log ПОСЛЕ возвращения запроса. Например promise или callback
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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