villiwalla
@villiwalla
HTML-верстка

Как вернуть ответ из объекта, после запроса Ajax?

Почему console.log(curs.sendRequest()); возвращает undefined? Но при этом console.log(xhr); возравщает данные.
var Valute = function (url) {

        this.url = url;

        this.createRequest = function () {
            this.request = new XMLHttpRequest();
            return this.request;
        };

        this.sendRequest = function () {

            var xhr = this.createRequest();
                xhr.open('GET', this.url, true);
                xhr.onreadystatechange = function () {
                if(xhr.readyState == 4 && xhr.status == 200) {
                    console.log(xhr);
                    return xhr.responseText;
                }
            };
            xhr.send(null);
        };
    };

    var curs = new Valute('data.curs-valute.xml');
    console.log(curs.sendRequest());
    console.log(curs);

    var dt = new Valute('data.text.html');
    console.log(dt.sendRequest());
    console.log(dt);

    function showData(data) {
        let wrap = document.querySelector('#curs');
        wrap.innerText = data;
    }
  • Вопрос задан
  • 294 просмотра
Пригласить эксперта
Ответы на вопрос 1
@LiguidCool
1) Прочитайте про асинхронность. Про колбеки. Про промисы. Поймите, что !!!JS асинхронный!!!.
2) https://learn.javascript.ru/fetch
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы